Проект Windows CLI в Visual Studio Professional

Я разрабатываю проект Windows Studio CLI для развертывания на других компьютерах, и мне было интересно узнать о двух вещах, подходит ли этот тип проекта для развертывания решения, использующего библиотеку Windows.Management.Deployment, поскольку пространство имен не распознается файлом решения. Я уже провел некоторое исследование переполнения стека и реализовал следующее в своем файле .csproj.

<Project Sdk = "Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <Reference Include = "System.Runtime.WindowsRuntime">
      <HintPath>..\..\..\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Runtime.WindowsRuntime.dll</HintPath>
    </Reference>
  </ItemGroup>


</Project>

До сих пор то, что я пробовал, казалось, не работало, и я сомневаюсь, что моя установка завершена. Если есть предложения о том, как заставить эту библиотеку работать, это начальные объявления в моем файле C#.

using System;
using Windows.Management.Deployment;
using System.Linq;

Строка, которая вызывает проблемы, это строка:

var packageManager = new PackageManager();

Я также связываю вопрос, который я нашел полезным, но не работал в моей настройке, на случай, если кто-то столкнется с этим вопросом. Как получить доступ к пространству имен Windows.Management.Deployment в проекте Desktop в VS2017?

Я использую диспетчер пакетов Nuget, когда пытался использовать WindowsRuntime 4.7.0, он сказал, что он недоступен для пользователя.

Изменить на `.csproj`

<Project Sdk = "Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include = "System.Runtime.InteropServices.WindowsRuntime" Version = "4.3.0" />
    <PackageReference Include = "System.Runtime.WindowsRuntime" Version = "4.7.0" />
  </ItemGroup>

  <ItemGroup>
    <Reference Include = "System.Runtime.WindowsRuntime">
      <HintPath>..\..\..\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Runtime.WindowsRuntime.dll</HintPath>
    </Reference>
    
  </ItemGroup>

   
</Project>

Когда вы говорите, что смотрели на этот другой вопрос, включает ли он ссылку в комментарии, в которой говорится, как все изменилось с .NET 5? (Я предполагаю, что ваши TargetFramework значения не сравнимы с тем, что должно быть)

Damien_The_Unbeliever 10.01.2023 16:26

@Damien_The_Unbeliever Я отредактировал свой файл .csproj, ссылается ли он на эталонный пакет Nuget? Потому что я просто добавил, что использую Nuget, и появилась ссылка.

Wanderer 10.01.2023 16:34
Laravel с Turbo JS
Laravel с Turbo JS
Turbo - это библиотека JavaScript для упрощения создания быстрых и высокоинтерактивных веб-приложений. Она работает с помощью техники под названием...
Типы ввода HTML: Лучшие практики и советы
Типы ввода HTML: Лучшие практики и советы
HTML, или HyperText Markup Language , является стандартным языком разметки, используемым для создания веб-страниц. Типы ввода HTML - это различные...
Аутсорсинг разработки PHP для индивидуальных веб-решений
Аутсорсинг разработки PHP для индивидуальных веб-решений
Услуги PHP-разработки могут быть экономически эффективным решением для компаний, которые ищут высококачественные услуги веб-разработки по доступным...
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
Слишком много useState? Давайте useReducer!
Слишком много useState? Давайте useReducer!
Современный фронтенд похож на старую добрую веб-разработку, но с одной загвоздкой: страница в браузере так же сложна, как и бэкенд.
Узнайте, как использовать теги &lt;ul&gt; и &lt;li&gt; для создания неупорядоченных списков в HTML
Узнайте, как использовать теги <ul> и <li> для создания неупорядоченных списков в HTML
HTML предоставляет множество тегов для структурирования и организации содержимого веб-страницы. Одним из наиболее часто используемых тегов для...
1
2
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что в конечном итоге решило проблему, так это тот факт, что на метаданные не ссылались должным образом, поэтому мне пришлось изменить целевую структуру.

<Project Sdk = "Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net6.0-windows10.0.22000.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>

  <ItemGroup>
    <Reference Include = "System.Management">
      <HintPath>..\..\..\Windows\Microsoft.NET\Framework64\v4.0.30319\System.Management.dll</HintPath>
    </Reference>
  </ItemGroup>

   
</Project>

Это решило проблему по крайней мере для меня.

Другие вопросы по теме