我想讓Octopack包含一些不屬於我的Visual Studio項目的其他dll。Octopack:在預生成事件中複製的其他文件
有沒有辦法讓Octopack使用我的csproj文件(正常情況下),然後指定我需要的其他文件,而不是使用nuspec中的部分。 (因爲那麼我必須維護我的nuspec中的所有項目文件的列表)
我目前正在將一些共享庫複製到預生成事件中的文件夾「/ providers」。有沒有一種方法可以將它們複製到Octopack將會看到並打包它們的地方?
我想讓Octopack包含一些不屬於我的Visual Studio項目的其他dll。Octopack:在預生成事件中複製的其他文件
有沒有辦法讓Octopack使用我的csproj文件(正常情況下),然後指定我需要的其他文件,而不是使用nuspec中的部分。 (因爲那麼我必須維護我的nuspec中的所有項目文件的列表)
我目前正在將一些共享庫複製到預生成事件中的文件夾「/ providers」。有沒有一種方法可以將它們複製到Octopack將會看到並打包它們的地方?
你並不需要維護所有項目文件在您nuspec文件的列表,你可以這樣做:
<files>
<file src="MyProject.Website\**\*.*" target="" />
</files>
這會搶在你的項目中的一切(所有文件和子目錄)。如果這對您來說太過分了,您可以利用排除規則:
<files>
<file src="MyProject.Website\**\*.*" target="" exclude="MyProject.Website\docs\admin.txt" />
</files>
希望有所幫助。
通過nuspec獲取項目目錄中的所有內容的答案的缺點是,這可能包含您不想要的文件(請參閱答案的後續排除示例)。
可能更好的方法是確保在您的項目中將文件定義爲「Copy to bin」或「Copy as content」,然後通過msbuild使用附加的命令行參數/p:OctoPackEnforceAddingFiles=true
它告訴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/
感謝湯姆,這正是我終於實現了。 –