Упаковывать проекты NuGet, скомпилированные в режиме релиза? - PullRequest
95 голосов
/ 30 июня 2011

Есть ли какой-нибудь способ сделать пакет NuGet, используя код, скомпилированный в режиме выпуска?Или есть какая-то причина, по которой я должен публиковать (в этом случае делать доступными локально) пакеты, скомпилированные в режиме отладки?

Каждый раз, когда я вызываю nuget pack из моего каталога проекта, где у меня есть файл nuspec ниже,в коде, который я скомпилировал только в режиме выпуска, он жалуется на то, что не нашел DLL в папке отладки ("\bin\Debug\SomeProject.dll").Если я скомпилирую его в режиме отладки, эти файлы будут там, и он упакует их, как следует.

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
    <metadata>
        <id>$id$</id>
        <version>$version$</version>
        <authors>$author$</authors>
        <owners>$author$</owners>
        <iconUrl>http://somewhere/project.png</iconUrl>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>$description$</description>
    </metadata>
</package>

Ответы [ 4 ]

185 голосов
/ 30 июня 2011

Вы можете решить это так: NuGet.exe pack Foo.csproj -Prop Configuration=Release ( ссылка ).

16 голосов
/ 14 августа 2013

Если вы используете событие после сборки и хотите создать пакет, используя конфигурацию Debug или Release, вы можете настроить командную строку события после сборки следующим образом:

"<path to nuget tools>\NuGet.exe" pack "$(ProjectPath)" -Prop Configuration=$(ConfigurationName)
7 голосов
/ 17 октября 2017

Чтобы NuGet автоматически использовал режим выпуска при запуске nuget pack, выполните следующие действия:

  1. Откройте файл .csproj в текстовом редакторе.
  2. Найдите следующую строку:

    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    
  3. В этой строке замените Debug на Release.
  4. Сохранить изменения.
0 голосов
/ 12 декабря 2018

Ответы здесь хорошие, но у меня было много проблем с этим для проекта .NET Standard.У меня был проект, который только собирался публиковать двоичные файлы выпуска, но он не соблюдал мой путь вывода сборки по умолчанию.

Я добавил это в свой CSProj, который затем позволил мне использовать принятый ответ здесь.

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
      <OutputPath>$(SolutionDir)bin\$(PlatformTarget)\Release</OutputPath>
</PropertyGroup>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...