首页 > 解决方案 > 使用 nuget 包分发简单的 .net 核心应用程序

问题描述

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

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

包:'CsvTextFieldParser',版本:'1.2.1'

路径:'lib/netstandard2.0/CsvTextFieldParser.dll'

由于它是简单的应用程序,我尝试在目录中使用所需的 nuget 包bin并运行它。那没起效。

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

标签: .netnuget-package

解决方案


dotnet publish在部署应用程序之前运行了吗?正如文档指出的那样,仅仅运行dotnet build是不够的:dotnet build

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

所以,只需运行dotnet publish. 它将为您执行构建和恢复所有依赖项,并且输出将是完全可部署的。


推荐阅读