Windows 10 Universal App-Type существует как в "Windows.Foundation.UniversalApiContract",

каким-то образом (я даже ничего не сделал), я получаю много erros в Visual Studio 2015, но я не могу понять, в чем проблема.

В нем говорится, что в обеих библиотеках "Windows.Foundation.UniversalApiContract" существует множество "типов".

Может кто-нибудь мне помочь? Что я могу сделать, чтобы спасти мое решение и мой проект? Я пытался иногда чистить и перестраивать, и это не помогло.

Ошибки в Visual Studio 2015

Ответ 1

Похоже, вы ссылаетесь на метаданные Windows 10 SDK (UAP) и метаданные Windows 8.1 SDK (Windows). Вы смешиваете старые и новые двоичные файлы или старый файл проекта? Попробуйте создать новый проект с нуля и добавьте свои источники.

Ответ 2

Я столкнулся с чем-то похожим:

15178 errors, huh?

Не весело. Я думаю, что это началось, когда я случайно добавил метод расширения к набору утилит, которые хранятся в проекте Portable Class Library, который ссылался на using Windows.ApplicationModel.DataTransfer;, так как я (тупо) добавил код, который обращался к буферу в PCL. И это имеет смысл; теперь я эффективно нацелен на две платформы Windows, что, очевидно, неверно.

Несколько вещей, добавленных в этот файл csproj проекта PCL. Сначала была эта строка:

<UseVSHostingProcess>false</UseVSHostingProcess>

Вторая - это ItemGroup:

<ItemGroup>
    <Reference Include="Windows.Foundation.UniversalApiContract">
      <HintPath>..\..\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\2.0.0.0\Windows.Foundation.UniversalApiContract.winmd</HintPath>
    </Reference>
</ItemGroup>

Я не уверен, что все это требовалось, но я удалил связанный с буфером код, ссылку на Windows.ApplicationModel.DataTransfer; в моих using s и reset/удалил изменения в файл csproj.

Тем не менее, у меня все же были многие из тех же ошибок. Я обнаружил, что выполнение чистых перестроек не всегда работает так, как я ожидал, поэтому я создал файл .bat, который я держу в корне папки проекта запуска, чтобы работать, когда у меня возникают проблемы. Сначала мне нужно закрыть решение в Visual Studio, а затем я запустил...
cd C:\Projects\solutionName\projectName
cd ./bin
rmdir x64 /S /Q
rmdir x86 /S /Q
rmdir ARM /S /Q

cd ../obj/
rmdir x64 /S /Q
rmdir x86 /S /Q
rmdir ARM /S /Q

cd ..
pause

Мне также нужно запустить это (опять же, с закрытым решением) перед созданием и отправкой в ​​магазин. Не совсем понятно, почему, но обоим из них: удаление кода, отличного от PCL, и сброс проекта PCL, а также удаление этих папок /bin и /obj - устранили проблему.

Моя ненаучная догадка о том, почему мне нужно сдуть /bin и /obj, заключается в том, что VS не всегда создает мои проекты в порядке зависимости и часто ссылается на старые компиляции моего кода, когда он должен был начаться свежий. Взрыв любого возможного датированного костыля, кажется, заставляет его делать вещи "Правильно". ¯\_ (ツ) _/¯