我已经创建了使用几个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
并运行它?
答案 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
。它将为您执行构建并还原所有依赖关系,并且输出将完全可部署。