首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指定Octopack nuget包文件的目标路径

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

Stack Overflow用户
提问于 2016-03-25 17:14:24
回答 1查看 1.7K关注 0票数 3

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

当前,lib/net452 452文件夹中的所有内容都被简单地与_relspackage放在根目录中,并且如前所述,缺少.nuspec文件。

要么是文档有点稀疏,要么是我在调试思维模糊时完全忽略了如何做到这一点。谁知道如何将编译后的输出指定为OctoPack,具体地说,将其放在.nupkg文件中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-26 01:37:52

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

.nuspec文件充当NuGet包(.nupkg)的“蓝图”。因此,简单地说,就是使用.nuspec元素的target属性指定<files>文件中的位置。可以在NuGet站点上找到详细信息,但是它应该如下所示:

代码语言:javascript
复制
<files>
  <file src="bin\$configuration$\*.dll" target="lib\net452\" />
</files>

在构建后的步骤中,有许多方法可以调用nuget.exe;在NuGet站点上也解释了许多方法。

OctoPack不是为nuget.org创建包,而是专门为章鱼部署创建包。它创建包有两种方式之一:

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

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36224611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档