nuget - 指定 Octopack nuget 包文件的目标路径

标签 nuget nuget-package octopus-deploy octopack

我发现 OctoPack 在创建 .nupkg nuget 包文件时非常简单,但是我想要包含 .nuspec 文件(目前放在另一个obj/octopackage 之类的文件夹),并且所有的 dll 都应该放在 lib/net452 文件夹 中,这样一般的结构就会这样显示:

enter image description here

目前,应该在 lib/net452 文件夹中的所有内容,以及 _relspackage 都简单地放在了根目录中,并且作为提到 .nuspec 文件丢失。

要么文档有点稀疏,要么我在调试的头脑中完全忘记了如何执行此操作。任何人都知道如何指定 OctoPack 在哪里,特别是将编译后的输出放在 .nupkg 文件中?

最佳答案

要创建 NuGet 包,您应该使用 nuget.exe,而不是 OctoPack。稍后我会解释原因。

.nuspec文件充当 NuGet 包 ( .nupkg ) 的“蓝图”。所以简短的回答是简单地在你的 .nuspec 中指定位置。文件,使用 target <files> 的属性元素。详情可以在 NuGet site 上找到, 但它看起来像这样:

<files>
  <file src="bin\$configuration$\*.dll" target="lib\net452\" />
</files>

有多种方法可以在构建后步骤中调用 nuget.exe;许多内容也在 NuGet 网站上进行了解释。

OctoPack 并不是要为 nuget.org 创建包;它专门用于为 Octopus Deploy 创建包。它以两种方式之一创建包:

  1. 如果有web.config文件存在时,OctoPack 假定该项目是一个 Web 项目,并相应地打包输出。它使用项目文件来确定哪些项目被标记为内容,哪些不是(尽管它总是会抓取 web.config 转换文件)。
  2. 否则,OctoPack 假定该项目是可执行文件或组件,并简单地打包它在输出文件夹中找到的任何内容(通常是 \Debug\bin\Release\bin )。这就是您所看到的行为。

由于 OctoPack 在后台使用 nuget.exe,因此 .nuspec文件将覆盖上述两种情况。因此,虽然您可以使用 OctoPack 创建您的 NuGet 包,但使用 nuget.exe 更合适。

关于nuget - 指定 Octopack nuget 包文件的目标路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36224611/

相关文章:

windows - 通用 Windows 平台/UAP : what is AOT?

c# - Selenium Internet Explorer 驱动程序、Kendo Mobile 和 Octopus Deploy

azure-devops - 将 Nuget 包推送到 Azure DevOps

asp.net-core - .Net Core项目Nuget包无法恢复

powershell - 通过 PowerShell 脚本安装 NuGet

nuget - 我应该什么时候更新项目的 NuGet 包?

xamarin - 无法升级 Android 项目的 Xamarin.Forms NuGet 包

visual-studio-2015 - 始终使用最新版本的 nuget 包

c# - 如何从 nuget 包中排除子目录和内容

deployment - Octopus Deploy 使用部署快照,直到我创建新版本