使用nuget包分发简单的.net核心应用程序

时间:2019-09-17 07:55:46

标签: .net nuget-package

我已经创建了使用几个nuget包的简单.net核心应用程序。我想在未安装这些nuget软件包的其他Windows 10计算机上运行它。当我复制可执行dll并尝试使用Dotnet xxx.dll从Powershell控制台运行它时,出现错误:

  

在应用程序依赖清单中指定的程序集   找不到(XXX.deps.json):

     

程序包:“ CsvTextFieldParser”,版本:“ 1.2.1”

     

路径:“ lib / netstandard2.0 / CsvTextFieldParser.dll”

因为它是简单的应用程序,所以我尝试在bin目录中使用必需的nuget软件包并运行它。它没有用。

如何在简单的.net核心应用程序中使用nuget包,我可以在其他计算机上简单xcopy并运行它?

1 个答案:

答案 0 :(得分:0)

在部署应用程序之前,您是否运行过dotnet publish?正如doc for dotnet build指出的那样,仅运行dotnet build是不够的:

  

如果项目具有第三方依赖性,例如来自NuGet的库,则它们将从NuGet缓存中解析,并且不适用于项目的内置输出。考虑到这一点,dotnet构建产品尚未准备好转移到另一台机器上运行。这与.NET Framework的行为形成对比,在.NET Framework中,构建可执行项目(应用程序)会生成可在安装.NET Framework的任何计算机上运行的输出。要对.NET Core拥有类似的体验,您需要使用dotnet publish命令。有关更多信息,请参见.NET Core应用程序部署。

因此,只需运行dotnet publish。它将为您执行构建并还原所有依赖关系,并且输出将完全可部署。