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

当前,lib/net452 452文件夹中的所有内容都被简单地与_rels和package放在根目录中,并且如前所述,缺少.nuspec文件。
要么是文档有点稀疏,要么是我在调试思维模糊时完全忽略了如何做到这一点。谁知道如何将编译后的输出指定为OctoPack,具体地说,将其放在.nupkg文件中?
发布于 2016-03-26 01:37:52
要创建NuGet包,您应该使用nuget.exe,而不是OctoPack。我马上解释原因。
.nuspec文件充当NuGet包(.nupkg)的“蓝图”。因此,简单地说,就是使用.nuspec元素的target属性指定<files>文件中的位置。可以在NuGet站点上找到详细信息,但是它应该如下所示:
<files>
<file src="bin\$configuration$\*.dll" target="lib\net452\" />
</files>在构建后的步骤中,有许多方法可以调用nuget.exe;在NuGet站点上也解释了许多方法。
OctoPack不是为nuget.org创建包,而是专门为章鱼部署创建包。它创建包有两种方式之一:
web.config文件,则OctoPack假设该项目是一个web项目,并相应地打包输出。它使用项目文件来确定哪些项被标记为内容,哪些项不是(尽管它总是获取web.config转换文件)。\Debug\bin或\Release\bin)。这就是你看到的行为。由于OctoPack在引擎盖下使用nuget.exe,所以.nuspec文件将覆盖上述两种情况。因此,虽然可以使用OctoPack创建NuGet包,但使用nuget.exe更为合适。
https://stackoverflow.com/questions/36224611
复制相似问题