【问题标题】:Explicitly set the order of build targets defined in NuGet packages显式设置 NuGet 包中定义的构建目标的顺序
【发布时间】:2018-04-09 13:24:35
【问题描述】:

我有一个用于构建 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 目标必须在 OctoPack 目标之前运行,否则 OctoPack 生成的 NuGet 包中没有所需的文件。

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

【问题讨论】:

    标签: visual-studio-2017 target octopack


    【解决方案1】:

    我想出了一个解决方法来代替答案。我没有使用 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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-10
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多