Как создать файл nuget с конфигурациями Release и Debug, используя msbuild в Azure Devops - PullRequest
0 голосов
/ 04 февраля 2020

Мне нужно создать файл nuget, который содержит как релизную, так и отладочную версии моей dll. Мне нужно быть в состоянии сделать это в Azure Devops, используя задачу MSBuild.

Я использую MSBuild из-за ошибки в задаче NuGet, где, если вы используете новую ссылку на пакет и ссылку на проект, это не так сделать информацию о зависимостях правильно.

Я попытался сделать две сборки, одну в отладке и одну в выпуске, а затем сделать так, чтобы релиз выполнил сборку. Это все еще только дало мне один файл. Я также попытался использовать файл nuspe c, чтобы заставить его захватить оба файла, но это все равно привело только к одному файлу в пакете.

1 Ответ

0 голосов
/ 04 февраля 2020

Как создать файл nuget с конфигурациями Release и Debug с помощью msbuild в Azure Devops

Боюсь, вы не смогли создать nuget файл с конфигурациями Release и Debug с использованием msbuild на данный момент.

Это потому, что пакет NuGet обычно содержит только один набор сборок для конкретной целевой инфраструктуры. На самом деле он не предназначен для доставки отладочной и выпускной версии.

Если мы используем nuget, мы можем использовать собственный файл MSBuild .targets в .nuspec, который имеет свои собственные ссылки и информацию о конфигурации:

Проверьте эту ветку для получения более подробной информации.

Но, если вы хотите использовать MSBuild, мы не могли бы указать файл dlls, мы должны создать два пакета для debug и release, затем мы добавляем пользовательский файл MSBuild .targets в файл проекта со свойствами <Pack>true</Pack> и <PackagePath>build\</PackagePath>, например:

  <ItemGroup>
    <None Include="build\*.targets" Pack="True" PackagePath="build\" />
  </ItemGroup>

В этом случае * Файл 1029 * будет упакован в папку сборки, которая будет импортирована в проект установки nuget:

Проверьте этот поток для получения дополнительной информации.

Кроме того, в .targets файл, вы можете использовать Choose/When, чтобы выбрать PackageReference для debug и release:

<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>

Проверьте билет github для получения более подробной информации .

Надеюсь, это поможет.

...