Octopack:在预构建事件中复制的其他文件

时间:2013-10-01 11:29:10

标签: octopus-deploy

我试图让Octopack包含一些不属于我的Visual Studio项目的额外dll。

有没有办法让Octopack使用我的csproj文件(正常),然后只指定我需要的其他文件,而不是使用nuspec中的部分。 (因为那时我必须在我的nuspec中维护所有项目文件的列表)

我目前正在将一些共享库复制到预构建事件中的文件夹“/ providers”。有没有办法对此进行扩展,将它们复制到Octopack会看到并打包它们的地方?

2 个答案:

答案 0 :(得分:1)

您无需在nuspec文件中维护所有项目文件的列表,您可以这样做:

<files>
    <file src="MyProject.Website\**\*.*" target="" />
</files>

这将获取项目中的所有内容(所有文件和子目录)。如果这对您来说太过分了,您可以利用排除规则:

<files>
    <file src="MyProject.Website\**\*.*" target="" exclude="MyProject.Website\docs\admin.txt" />
</files>

希望有所帮助。

答案 1 :(得分:1)

通过nuspec抓取项目目录中的所有内容的答案的缺点是,这可能包含您不想要的文件(请参阅答案的后续排除示例)。

更好的方法是在项目中确保将文件定义为&#34;复制到bin&#34;或&#34;复制为内容&#34;然后使用另一个命令行参数/p:OctoPackEnforceAddingFiles=true通过msbuild与Octopack构建,告诉OctoPack将csproj和nuspec结合起来,这样你就不必用通配符调出所有可能的路径,您只能在您的nuspec中包含从常规构建过程中获取的文件。从OctoPack的2.1.3版开始支持此功能。

您也可以通过指定csproj文件来使用常规Nuget.exe和MSBuild,如果存在具有特定路径的nuspec,则应将它们连接在一起。

有关更好的示例,请参阅这些参考链接。

https://getadigital.com/no/blogg/setting-up-your-project-and-teamcity-octopack-for-front-end-builds/

https://octopus.com/docs/packaging-applications/nuget-packages/using-octopack/octopack-to-include-buildevent-files

相关问题