[英]Explicitly set the order of build targets defined in NuGet packages
我有一個用於構建Azure Function應用的Visual Studio 2017項目。 該項目(除其他外)包含兩個NuGet軟件包-Microsoft.NET.Sdk.Functions和OctoPack 。 有關項目的.csproj
文件按此順序引用了這些程序包。
Microsoft.NET.Sdk.Functions
程序包包含目標_GenerateFunctionsPostBuild
<Target Name="_GenerateFunctionsPostBuild" AfterTargets="Build">...</Target>
OctoPack
套件包含目標Octopack
<Target Name="OctoPack" Condition="$(RunOctoPack)">...</Target>
當建設,這是至關重要的_GenerateFunctionsPostBuild
目標運行之前OctoPack
目標,否則所需的文件不是由OctoPack產生的NuGet包可用。
由於無法直接編輯NuGet包,因此無法為OctoPack
目標明確聲明AfterTarget="_GenerateFunctionsPostBuild"
。 有什么方法可以強制目標按我要求的順序運行?
代替答案,我想出了一種解決方法。 在構建完成之后,我不是使用OctoPack ,而是手動生成NuGet軟件包。
在NuSpec文件中,我為%Configuration%
和%Version%
添加了幾個標記,以便我可以根據配置選擇要打包的文件,並且顯然可以自定義版本。
這就是我正在做的事情-顯然我在這些行之前做了$version
。
$dir = (Get-Location).Path
& D:\nuget\4.4.1\nuget.exe pack $dir\AzureFunction\AzureFunction.nuspec -BasePath $dir\AzureFunction -Properties "Configuration=Release;Version=$version"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.