Azure devops 如何在Azure Devops中使用msbuild创建具有发布和调试配置的nuget文件

Azure devops 如何在Azure Devops中使用msbuild创建具有发布和调试配置的nuget文件,azure-devops,msbuild,nuget-package,Azure Devops,Msbuild,Nuget Package,我需要创建一个nuget文件,其中包含dll的发行版和调试版。我需要能够在Azure Devops中使用MSBuild任务执行此操作 我之所以使用MSBuild,是因为NuGet任务中存在一个错误,如果使用新的packagereference和projectreference,它就不能正确地处理依赖项信息 我试过做两个构建,一个在调试中,一个在发行版,然后让发行版做一个包。这仍然只给了我一个文件。我还尝试使用一个nuspec文件来告诉它抓取两个文件,但这仍然只导致包中有一个文件 如何在Azure

我需要创建一个nuget文件,其中包含dll的发行版和调试版。我需要能够在Azure Devops中使用MSBuild任务执行此操作

我之所以使用MSBuild,是因为NuGet任务中存在一个错误,如果使用新的packagereference和projectreference,它就不能正确地处理依赖项信息

我试过做两个构建,一个在调试中,一个在发行版,然后让发行版做一个包。这仍然只给了我一个文件。我还尝试使用一个nuspec文件来告诉它抓取两个文件,但这仍然只导致包中有一个文件

如何在Azure Devops中使用msbuild创建具有发布和调试配置的nuget文件

很抱歉,您目前无法使用msbuild创建同时具有发布和调试配置的nuget文件

这是因为NuGet包通常只包含特定目标框架的一组程序集。它并不是真正设计用来发布调试和发布版本的

如果使用nuget,则可以在
.nuspec
中使用自定义MSBuild
.targets
文件,该文件具有自己的引用和配置信息:

查看更多详细信息

但是,如果您想使用MSBuild,我们无法直接指定DLL文件,我们必须为
debug
release
创建两个包,然后在项目文件中添加一个自定义MSBuild
.targets
文件,其属性为
true
build\
,如下所示:

  <ItemGroup>
    <None Include="build\*.targets" Pack="True" PackagePath="build\" />
  </ItemGroup>
有关更多详细信息,请查看

希望这有帮助

<Choose>
    <When Condition=" '$(Configuration)'=='debug' ">
        <ItemGroup>
            <PackageReference Include="MyRefDebug"> 
              <Version>1.0</Version> 
            </PackageReference>
        </ItemGroup>
    </When>
    <Otherwise>
        <ItemGroup>
            <PackageReference Include="MyRefRelease"> 
              <Version>2.0</Version> 
            </PackageReference>
        </ItemGroup>
    </Otherwise>
</Choose>