【问题标题】:distribute simple .net core application with nuget package使用 nuget 包分发简单的 .net 核心应用程序
【发布时间】:2019-09-17 07:55:46
【问题描述】:

我创建了简单的 .net 核心应用程序,它使用了一些 nuget 包。我想在未安装这些 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 并运行它?

【问题讨论】:

    标签: .net nuget-package


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 1970-01-01
      • 2011-07-15
      相关资源
      最近更新 更多