Я хочу опубликовать мое автономное приложение .NET Core (2.2), однако один конкретный пакет NuGet (Microsoft.Management.Infrastructure
) никогда не публикуется в папке publish
(как в файле .dll нет).
Я использую команду dotnet publish -c Release --self-contained -r win-x64 ConsoleApp1
.При запуске приложения внутри visual studio все работает.Однако при запуске скомпилированного исполняемого файла я получаю FileNotFoundException
:
Необработанное исключение: System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'Microsoft.Management.Infrastructure, Version = 1.0.0.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 '.Система не может найти указанный файл.at ConsoleApp1.Program.Main (String [] args)
Воспроизвести
1) Создать простое консольное приложение .NET Core (я тестировал и 2.1, и 2.2, без разницы)
2) Добавить пакет NuGet Microsoft.Management.Infrastructure
3) Добавить следующий код в приложение:
namespace ConsoleApp1
{
internal class Program
{
private static void Main(string[] args)
{
var sessionOptions = new DComSessionOptions
{
Timeout = TimeSpan.FromSeconds(30)
};
CimSession Session = CimSession.Create("localhost", sessionOptions);
var processors = Session.QueryInstances(@"root\cimv2", "WQL", "SELECT * FROM Win32_Processor");
foreach (CimInstance processor in processors)
{
Console.WriteLine(processor.CimInstanceProperties["Name"].Value);
}
Console.ReadLine();
}
}
}
4) Опубликовать проект: dotnet publish -c Release --self-contained -r win-x64 ConsoleApp1
5) Запуститьскомпилированный исполняемый файл