显式设置 NuGet 包中定义的构建目标的顺序
Explicitly set the order of build targets defined in NuGet packages
我有一个 Visual Studio 2017 项目,用于构建 Azure Function App。该项目包含(除其他外)两个 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
目标之前运行,否则生成的NuGet包中没有需要的文件OctoPack.
由于我无法直接编辑 NuGet 包,因此我无法为 OctoPack
目标明确声明 AfterTarget="_GenerateFunctionsPostBuild"
。有什么方法可以按照我需要的顺序强制目标 运行 吗?
我想出了一个解决方法来代替答案。我没有使用 OctoPack,而是在构建完成后手动生成 NuGet 包。
在 NuSpec 文件中,我为 %Configuration%
和 %Version%
添加了几个标记,以便我可以选择要打包的文件在配置上,显然是自定义版本。
这是我正在做的 - 显然我在这些行之前制作 $version
。
$dir = (Get-Location).Path
& D:\nuget.4.1\nuget.exe pack $dir\AzureFunction\AzureFunction.nuspec -BasePath $dir\AzureFunction -Properties "Configuration=Release;Version=$version"
我有一个 Visual Studio 2017 项目,用于构建 Azure Function App。该项目包含(除其他外)两个 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
目标之前运行,否则生成的NuGet包中没有需要的文件OctoPack.
由于我无法直接编辑 NuGet 包,因此我无法为 OctoPack
目标明确声明 AfterTarget="_GenerateFunctionsPostBuild"
。有什么方法可以按照我需要的顺序强制目标 运行 吗?
我想出了一个解决方法来代替答案。我没有使用 OctoPack,而是在构建完成后手动生成 NuGet 包。
在 NuSpec 文件中,我为 %Configuration%
和 %Version%
添加了几个标记,以便我可以选择要打包的文件在配置上,显然是自定义版本。
这是我正在做的 - 显然我在这些行之前制作 $version
。
$dir = (Get-Location).Path
& D:\nuget.4.1\nuget.exe pack $dir\AzureFunction\AzureFunction.nuspec -BasePath $dir\AzureFunction -Properties "Configuration=Release;Version=$version"