Проект 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
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
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>

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

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