【问题标题】:DotNet Pack Not Doing AnythingDotNet Pack 什么都不做
【发布时间】:2018-02-13 21:25:27
【问题描述】:

我正在尝试为我的 Web 应用程序创建一个 nuget 包,但它没有产生任何 .nupkg 输出。我正在使用 Visual Studio 2017 15.3.0。

要创建项目,我执行以下操作:

  • 文件 - 新建 - 项目,
  • Visual C# - Web,
  • Asp.Net Core Web 应用程序,
  • Web 应用程序

然后我转到包含 csproj 文件的目录中的命令提示符并键入: “点网包”

我只得到以下输出:

适用于 .NET Core 的 Microsoft (R) Build Engine 版本 15.3.409.57025 版权所有 (C) 微软公司。保留所有权利。

但是没有创建任何 nuget 包。我期待这样的事情:

为应用制作 Nuget 包“App.1.0.0”

我是否需要对 csproj 文件执行其他操作?

【问题讨论】:

  • 所以您希望从网站创建一个 nuget 包?不是说它是对是错,但你对这个包有什么期望?
  • 这样我就可以在 TeamCity 中生成一个可以由 Octopus Deploy 部署的 Nuget 包。如果有更好的方法,请纠正我。
  • Octopus Deploy 建议使用dotnet publish 生成已发布的输出,然后在该输出上使用octo pack。请咨询its documentation
  • 我的情况与想从 vsts 构建部署到托管 openshift 平台的情况相同。托管平台希望选择 Docker 运行时,以便十几个团队不必更改其 Docker 文件以获取安全补丁。没有办法将 asp.net 核心网站部署为一个包,这意味着我需要发送 zip 文件

标签: asp.net .net .net-core dotnet-cli


【解决方案1】:

默认情况下,Web 应用程序不可打包。要更改此设置,请修改您的 csproj 文件以包含此属性:

<PropertyGroup>
  <IsPackable>true</IsPackable>
</PropertyGroup>

请注意,截至目前(2017 年),对于适用于您希望使用 NuGet 包的所有场景的“库 Web 项目”或 Web 项目包来说,没有一个好故事。但是这个属性至少会解除对生成包的阻碍。

【讨论】:

  • 感谢您的回答。我不明白你的评论。我这样做是为了在 TeamCity 中生成一个可以由 Octopus Deploy 部署的 Nuget 包。如果有更好的通过 TeamCity 从 Octopus 部署的方法,请纠正我。
  • 考虑使用dotnet publish 的输出来发布应用以获得正确的布局。
  • 这也适用于 VS 认为是测试项目的项目。
  • 同样适用于 Worker 项目 (&lt;Project Sdk="Microsoft.NET.Sdk.Worker"&gt;)
猜你喜欢
  • 2019-03-08
  • 2016-12-24
  • 2017-04-18
  • 2011-08-03
  • 2014-05-11
  • 2014-09-10
  • 1970-01-01
  • 2023-03-29
  • 2013-09-28
相关资源
最近更新 更多