2016-06-30 3 views
2

.csproj.nupkg에 넣으면 Web.config의 이름을 Web.config.transform으로 바꿉니다. Nuget 패키지를 설치/배포 한 후에이 작업을 취소하는 스크립트를 작성했지만 Nuget이 팩의 web.config 이름을 바꾸지 못하도록 막는 방법이 있는지 궁금해합니다. 또는 패키지의 디자인에서 피할 수없는 부분이 아닌지 궁금합니다. Nuget 팩.Nuget web.config에서 web.config.transform으로 이름 바꾸기

NuGet.exev3.4.4-IncludeReferencedProjects으로 실행하고 명령 줄 매개 변수로 내 구성을 릴리스로 설정했습니다.

New-Item -ItemType Directory -Force -Path .\bin 
xcopy .\lib\net45 .\bin /y /s 
xcopy .\content .\ /y /s 
Move-Item Web.config.transform Web.config -Force 
+1

소비 프로젝트의 web.config를 자신의 것으로 겹쳐 쓰는 것이 정말로 확실합니까? 그들의 응용 프로그램 설정은 어떻습니까? NuGet 패키지는 설치/제거시 새 설정이 추가/제거되도록하기 위해 변환을 적용해야합니다. https://docs.nuget.org/create/configuration-file-and-source-code-transformations – Reddog

+0

예 문어 배포 설치를 통해 배포시 핫 드롭에서 웹 구성을 구성하고 싶습니다. – FiringSquadWitness

+0

내 nuget 파일도 변환을 적용 할 환경을 알 수 없습니다. 전체 프로세스를 잘못하지 않는 한. 전체 환경에 대해 단일 너겟 패키지를 수행해야합니까? 모든 다른 환경을위한 12 개 정도의 패키지 호스팅하기 – FiringSquadWitness

답변

2

방금 ​​문어를 통해 Asp.net 응용 프로그램을 배포 할 것 같다 내가 맞다 : 사람이이 문제를 해결하기 위해 해키 방법에 관심이 있다면

정리를 설치하는 내? Octopus는 배포를 위해 NuGet 패키지를 사용하기를 제안하지만 NuGet은 Visual Studio에서 사용할 라이브러리 패키징 용으로 설계된 것이므로 취급 할 수 없습니다.

NuGet은 응용 프로그램을 배포 할 때와 다른 사용 시나리오 인 Visual Studio에서 사용할 라이브러리 패키징 용으로 설계되었습니다. 예를 들어 라이브러리 NuGet 패키지를 만들 때 NuGet은 바이너리를 lib 폴더에 넣고 콘텐츠 파일을 콘텐츠 폴더에 넣을 것을 권장합니다. 그러나 Octopus Deploy의 경우이 규칙은 의미가 없습니다. ASP.NET 응용 프로그램에서는 바이너리가 bin 폴더에있을 것으로 기대합니다. 대신 NuGet 패키지 구조 규칙을 무시하고 디스크에서 압축을 풀었을 때와 같이 패키지를 구조화하면됩니다.

자세한 내용은 here을 참조하십시오.

제안 된대로 Nuspec 파일을 직접 구조화해야합니다.

+0

이 조언을 따라 주셔서 감사합니다. 제대로 된 것 같습니다. – FiringSquadWitness