릴리스 모드에서 컴파일 된 NuGet 프로젝트를 패킹 하시겠습니까?


109

릴리스 모드에서 컴파일 된 코드를 사용하여 NuGet 패키지를 만드는 방법이 있습니까? 아니면 디버그 모드에서 컴파일 된 패키지 만 게시 (이 경우 로컬에서 사용 가능)해야하는 이유가 있습니까?

nuget pack아래의 nuspec 파일이있는 프로젝트 디렉터리에서 호출 할 때마다 릴리스 모드로만 컴파일 한 코드에서 디버그 폴더 ( "\bin\Debug\SomeProject.dll") 에서 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>

답변:


207

다음과 같이 해결할 수 있습니다 : NuGet.exe pack Foo.csproj -Prop Configuration=Release( 참조 ).


10
링크에서 짧은 이야기를 원하는 사람을 위해 (좋은 읽기), v1.3에서 v1.4로 변경되어 릴리스의 기본값에서 수정 만 가능한 프로젝트 설정에서 가져온 기본값으로 변경되었습니다. 직접 프로젝트 파일 (VS GUI 옵션 없음). 이후의 모든 nuget pack호출에 대해 명령 줄 속성이 조정되지 않도록하려면 자주 사용하는 텍스트 편집기에서 프로젝트 파일 XML을 편집합니다.
patridge

4
릴리스 및 디버그 버전을 하나의 패키지로 패키징 한 다음 디버그 대 릴리스 솔루션 구성에 있는지 여부에 따라 프로젝트에서 디버그 버전과 릴리스 버전을 자동으로 사용하도록 할 수 있습니까?
JD

2
단순히 패키지에 대한 디버그 기호를 원하는 경우 * .nuspec (예 :)에 PDB 파일을 포함 <file src="bin\Release\*.pdb" target="lib\net40\" />하거나 DLL 패키지와 함께 기호 패키지를 게시 할 수 있습니다.
patridge 2011-07-14

1
@Giorgi 링크 만료
Weipeng L

1
@JD 또한 디버그 및 릴리스 둘을 패키지로 원하고, 나는이 발견 : stackoverflow.com/questions/37673692/...을
피터 유

16

빌드 후 이벤트를 사용 중이고 디버그 또는 릴리스 구성을 사용하여 패키지를 생성하려는 경우 다음과 같이 빌드 후 이벤트 명령 줄을 설정할 수 있습니다.

"<path to nuget tools>\NuGet.exe" pack "$(ProjectPath)" -Prop Configuration=$(ConfigurationName)

10

를 실행할 때 NuGet이 자동으로 릴리스 모드를 사용하도록하려면 nuget pack다음을 수행합니다.

  1. .csproj텍스트 편집기에서 파일을 엽니 다 .
  2. 다음 줄을 찾으십시오.

    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    
  3. 이 라인에서 교체 DebugRelease.
  4. 변경 사항을 저장하다.

0

여기에 대한 답변은 좋지만 .NET Standard 프로젝트에서 많은 문제가 발생했습니다. 릴리스 바이너리 만 게시 할 프로젝트가 있었지만 기본 빌드 출력 경로를 따르지 않았습니다.

나는 이것을 내 CSProj에 추가하여 여기 에서 수락 된 답변을 사용할 수 있었습니다 .

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
      <OutputPath>$(SolutionDir)bin\$(PlatformTarget)\Release</OutputPath>
</PropertyGroup>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.