Добавление Windows.winmd в проект UWP вызывает конфликт - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь создать проект UWP с помощью VS 2017 и MVVMLight, изменяющего версию Windows 10 от 1803 до 1809. Это приложение WPF.

После нескольких дней работы мое решение компилируется и выполняется правильно, а моеОсновной вид отображается правильно.Теперь мне нужно добавить поддержку StorageDevice, а VS предлагает добавить ссылку на Windows.winmd.Теперь StorageDevice распознается, но при этом добавляются сообщения о конфликтах и ​​ошибках сборки.

Все конфликты связаны с Windows.Foundation.UniversalApiContract v7.0.0.0 для разных классов, включая

У меня много летопыт работы в настольных приложениях, но я признаю, что я новичок в UWP.Я пытаюсь понять концепцию, но, с моей точки зрения, она меняется год за годом, и я не понимаю взаимосвязи между всеми компонентами и концепцией winmd.Итак, я потерян и не вижу пути решения или аналогичного решения проблемы с Google.

Чтобы воспроизвести проблему:

  1. Создайте универсальное приложение для Windows MVVMLight из Visual Studio 2017.
  2. Добавьте следующее в конец конструктора класса App в app.xaml.cs.Это будет выглядеть так:
public App()
{
   InitializeComponent();
   Suspending += OnSuspending;

   StorageFolder x = StorageDevice.FromId("");
}

Добавьте значения для следующих пространств имен:

  • с использованием Windows.Devices.Portable;
  • с использованием Windows.Storage;

Compile.Он покажет ошибку для строки, добавленной в пункте 2, и предложит добавить ссылку на Windows.winmd.StorageDevice определен в пространстве имен Windows.Devices.Portable.

Примите предложение добавить ссылку на Windows.winmd.Предыдущая ошибка исчезает, но появляется много конфликтов (ошибка CS0433), например:
Erreur  CS0433  Le type 'ApplicationExecutionState' existe dans 'Windows.Foundation.UniversalApiContract, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime' et 'Windows, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'    MvvmLight2  D:\Code\App.xaml.cs 41  Actif

Перевод на английский:

Error   CS0433  The type 'ApplicationExecutionState' exist in 'Windows.Foundation.UniversalApiContract, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime' and 'Windows, Version=255.255.255.255, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime' MvvmLight2  D:\Code\App.xaml.cs 41  Actif

1 Ответ

1 голос
/ 02 июля 2019

StorageDevice входит в состав пакета Windows Desktop Extension SDK, вам не нужно добавлять ссылку на Windows.winmd.

Следуйте инструкциям, чтобы добавить ссылку на «Расширение рабочего стола Windows»:

Щелкните правой кнопкой мыши «Ссылка» вашего проекта -> Добавить ссылку -> Универсальная Windows -> Расширения -> Расширения рабочего стола Windows для UWP .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...