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

릴리스 모드에서 컴파일 된 코드를 사용하여 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>



답변

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


답변

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

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


답변

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

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

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

답변

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

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

<PropertyGroup Condition="'$(Configuration)' == 'Release'">
      <OutputPath>$(SolutionDir)bin\$(PlatformTarget)\Release</OutputPath>
</PropertyGroup>


답변