Попытка получить текущую версию пакета вызывает ошибки APPX1706 и APPX1704
У меня проблемы с классом Windows.ApplicationModel.Package.
Когда я пытаюсь добавить ссылку на Windows.ApplicationModel или когда я получаю текущий пакет, появляется 17000+ ошибок.
Как я пытаюсь получить текущий пакет:
var myPackage = Windows.ApplicationModel.Package.Current;
Вид ошибки, которую я получаю:
ошибка APPX1704: файл.winmd "Windows.Foundation.UniversalApiContract.winmd" содержит тип "Windows.Graphics.Effects.IGraphicsEffect". Использование пробела Windows является зарезервированным.
Или же
ошибка APPX1706. Файл.winmd "Windows.Foundation.UniversalApiContract.winmd" содержит тип "Windows.Graphics.Effects.IGraphicsEffect" вне корневого пространства имен "Windows.Foundation.UniversalApiContract". Убедитесь, что все открытые типы отображаются в общем корневом пространстве имен, которое соответствует имени выходного файла.
Есть ли решение этой проблемы или лучший способ получить текущую версию?
2 ответа
Я нашел источник проблемы, это было связано со структурой решения.
Как и в приложении Xamarin, у нас есть "базовый" проект, который содержит логику приложения.
Мы попытались использовать в этих общих классах определенные пространства имен приложений для Windows вместо создания интерфейса в проекте Core и реализации его в проекте UWP.
Удаление строки со ссылкой на класс Windows.ApplicationModel.Package из основного проекта и его перемещение в проект UWP решило проблему.
Извините за отсутствие информации о первоначальном посте.
Что касается первой проблемы, я немного не уверен, но всегда рекомендуется перезагрузить компьютер (ide, os и т. Д.), Если это не помогает, возможно, переустановите SDK, IDE. Я знаю, что это не полный ответ, это просто из опыта. Вторая ошибка говорит о том, что ваши пространства имен не согласованы. Это означает, что вместо Example.Logic, Example.Domain, Example.Utils - у вас есть что-то вроде Example.Logic, Test.Domain, Utils (несогласованность пространств имен).