0

我有一个用于构建 Azure Function App 的 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目标之前运行,否则所需的文件在OctoPackOctoPack生成的 NuGet 包中不可用。

由于我无法直接编辑 NuGet 包,因此无法明确说明AfterTarget="_GenerateFunctionsPostBuild"目标OctoPack。有什么办法可以强制目标按照我需要的顺序运行?

4

1 回答 1

0

代替答案,我想出了一个解决方法。我没有使用OctoPack,而是在构建完成后手动生成 NuGet 包。

NuSpec文件中,我为 and 添加了几个标记%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"
于 2018-04-10T15:19:18.773 回答