10
  1. Создание нового приложения для Windows 8 App1
  2. Добавить ClassLibrary1 проект библиотеки 8 класса Windows, к решению
  3. Добавить PortableClassLibrary1 портативную библиотеку классов нацеливание для Windows 8 и Windows Phone 7.5 для решения
  4. Ссылка HttpClient NuGet пакет в ClassLibrary1
  5. Ссылка HttpClient NuGet пакет в PortableClassLibrary1
  6. Reference как решение ClassLibrary1 и PortableClassLibrary1
  7. Compile

Вы получите ошибку на этапе .appx пакетаNuGet, переносимая библиотека и WinRT appx: Payload содержит два или более файлов с тем же путем назначения

Payload contains two or more files with the same destination path 'System.Net.Http.Primitives.dll'. 
Source files: 
\Projects\App1\PortableClassLibrary1\bin\Debug\System.Net.Http.Primitives.dll 
\Projects\App1\packages\Microsoft.Net.Http.2.2.13\lib\win8\System.Net.Http.Primitives.dll 

Пожалуйста, обратите внимание, что та же ошибка воспроизводится, если вы ссылаетесь на какой-либо пакет NuGet отличая как win8, так и переносные смеси сборок.

Что ожидается: Большинство конкретной версии библиотеки (Win8 один) упакован в .appx и портативная версия игнорируется

Любые идеи о том, как обмануть appx упаковщик и построить этот вид Windows 8 проектов?

ответ

2

В дополнение к этому, вы должны получать предупреждения, аналогичные:

Все проекты ссылающихся ClassLibrary1.csproj необходимо установить NuGet пакет Microsoft.Bcl.Build. Для получения дополнительной информации см. http://go.microsoft.com/fwlink/?LinkID=317569.

Это указывает на проблему. В основном, если не считать этого, вы должны установить HttpClient.Compression во все проекты. Пакет MSBuild/AppX не знает, какой из двоичных файлов нужно развернуть между проектом переносимой библиотеки и библиотеки магазина (у них разные API &). Об этом говорит инсталляция пакета в приложение.

+0

Дэвид, спасибо! –

9

Похоже, что решение, описанное здесь работает: http://cyanbyfuchsia.wordpress.com/2013/05/03/payload-contains-two-or-more-files-with-the-same-destination-path/

В принципе, вы должны установить «Копировать местный» ложь в проекте WinRT, ссылка из основного приложения.

+0

Подход, который я получил, заключался в том, чтобы добавить пакет NuGet к основному приложению, а затем убедитесь, что для всех библиотек, на которые ссылаются, в ссылках было установлено значение «Скопировать местное».Таким образом, проект приложения является «мастером» включения этих файлов. У меня также были предупреждения о том, чтобы установить Microsoft.Bcl.Build, но это не помогло. – RandomEngy

+0

Я получал эту ошибку, потому что мой проект UnitTesting также имеет папку «Активы». Поскольку модульные тесты не нуждаются в этих активах (логотипы, значки и т. Д.), Я просто удалил их. – WiteCastle

0

У меня был такой выпуск тоже. Это было , потому что Я поделился одним из моих решений между проектами. Мне пришлось переименовать решение, потому что имя было одинаковым, как в одном из проектов. После переименования у меня была эта проблема.

Я фиксированной его: щелкните правой кнопкой мыши на решение, которое я переименованы и использовали оба проекта, затем свойства, а затем использовать то же имя в сборки имя как имя решения.

 Смежные вопросы

  • Нет связанных вопросов^_^