Есть ли способ создать пакет 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 pack
вызовов, отредактируйте XML-файл проекта в своем любимом текстовом редакторе.<file src="bin\Release\*.pdb" target="lib\net40\" />
), либо опубликовать пакет символов вместе с пакетом DLL.Если вы используете событие после сборки и хотите создать пакет, независимо от того, используете ли вы конфигурацию Debug или Release, вы можете настроить командную строку события после сборки следующим образом:
источник
Чтобы NuGet автоматически использовал режим выпуска при запуске
nuget pack
, выполните следующие действия:.csproj
файл в текстовом редакторе.Найдите следующую строку:
Debug
наRelease
.источник
Ответы здесь хорошие, но у меня было много проблем с этим для проекта .NET Standard. У меня был проект, который собирался публиковать только двоичные файлы Release, но он не соблюдал мой путь вывода сборки по умолчанию.
Я добавил это к моему CSProj , который затем позволил мне использовать принятый ответ здесь .
источник