Ответ 1
Вы можете решить это следующим образом: NuGet.exe pack Foo.csproj -Prop Configuration=Release
(ссылка).
Есть ли способ сделать пакет 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>
Вы можете решить это следующим образом: NuGet.exe pack Foo.csproj -Prop Configuration=Release
(ссылка).
Если вы используете событие post-build и хотите создать пакет, используя конфигурацию Debug или Release, вы можете настроить командную строку события после сборки следующим образом:
"<path to nuget tools>\NuGet.exe" pack "$(ProjectPath)" -Prop Configuration=$(ConfigurationName)
Чтобы NuGet автоматически использовал режим Release при запуске nuget pack
, выполните следующие действия:
.csproj
в текстовом редакторе.Найдите следующую строку:
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
Debug
на Release
.Ответы здесь хорошие, но у меня было много проблем с этим для проекта.NET Standard. У меня был проект, который собирался публиковать только двоичные файлы Release, но он не соблюдал мой путь вывода сборки по умолчанию.
Я добавил это к моему CSProj, который затем позволил мне использовать принятый ответ здесь.
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<OutputPath>$(SolutionDir)bin\$(PlatformTarget)\Release</OutputPath>
</PropertyGroup>