현재, 공식 빌드 용 Nuget을 사용하여 릴리스 빌드를 nuget.org로 패키징하지만 기호 소스 푸시를 위해 Nuget을 사용하여 디버그 빌드를 symbolsource.org로 패키징합니다.
편집 : (Jon Skeet, Noda Time 개발의 편견)
NuGet은 이제 문서화 된대로 NuGet 갤러리 및 symbolsource.org (또는 유사한 서버)에 대한 푸시를 지원합니다 . 불행히도 여기에는 두 가지 모순되는 요구 사항이 있습니다.
- 단지 때 사용하는 디버깅을위한 필요없이 도서관을, 당신은 정말 릴리스 빌드를 원한다. 그것이 릴리스 빌드의 목적입니다.
- 진단 목적으로 라이브러리로 디버깅 할 때 모든 적절한 최적화가 비활성화 된 디버그 빌드를 원합니다. 이것이 바로 디버그 빌드의 목적입니다.
괜찮겠지 만 NuGet은 릴리스 및 디버그 빌드가 동일한 패키지에 유용한 방식으로 게시되도록 허용하지 않습니다.
따라서 선택 사항은 다음과 같습니다.
- 모든 사람에게 디버그 빌드를 배포하고 (문서의 예에 표시된대로) 모든 크기 및 성능 적중률을 유지합니다.
- 릴리스 빌드를 모든 사람에게 배포하고 약간 손상된 디버그 환경을 유지합니다.
- 정말 복잡한 배포 정책을 따르십시오. 잠재적으로 별도의 릴리스 및 디버그 패키지를 제공합니다.
처음 두 가지는 디버그와 릴리스 빌드 간의 차이의 영향으로 요약됩니다 ... 일부 동작을 확인하고 싶어하기 때문에 라이브러리 코드에 들어가기를 원하는 것과 원하는 것 사이에 큰 차이가 있다는 점도 주목할 가치가 있습니다. 버그를 발견했다고 믿기 때문에 라이브러리의 코드를 디버깅합니다. 두 번째 경우에는 라이브러리 코드를 Visual Studio 솔루션으로 가져 와서 그런 방식으로 디버그하는 것이 더 낫기 때문에 그 상황에 너무 많은주의를 기울이지 않습니다.
내 유혹은 릴리스 빌드를 유지하는 것입니다. 상대적으로 적은 수의 사용자가 디버그해야하고, 그렇게하는 사용자는 릴리스 빌드의 최적화에 크게 영향을받지 않을 것이라는 기대를 가지고 있습니다 . (JIT 컴파일러는 어쨌든 대부분의 최적화를 수행합니다.)
그래서 우리가 고려하지 않은 다른 옵션이 있습니까? 균형을 맞추는 다른 고려 사항이 있습니까? NuGet 패키지를 SymbolSource에 푸시하여 "모범 사례"가 실제로 확립되지 않았습니까?
nuget pack ... -Symbol
생성 된 패키지를하고 밀어 ...