簡體   English   中英

明確設置在NuGet軟件包中定義的構建目標的順序

[英]Explicitly set the order of build targets defined in NuGet packages

我有一個用於構建Azure Function應用的Visual Studio 2017項目。 該項目(除其他外)包含兩個NuGet軟件包-Microsoft.NET.Sdk.FunctionsOctoPack 有關項目的.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM