문제

teamcity와 octopus를 사용하여 패키지를 배포하고 있습니다.나는 teamcity를 사용하여 패키지를 만든 다음 Octopus를 사용하여 다른 환경에 배포하고 있습니다.Teamcity에서 별도의 단계로 복사해야 하는 리소스 폴더가 있습니다.이제 해당 폴더를 패키지에 포함시켜 해당 패키지를 다른 도메인의 원격 서버에 배포할 수 있기를 원합니다.메인 프로젝트의 콘텐츠 폴더에 리소스 폴더를 포함하도록 다음 파일을 정의했습니다.하지만 무슨 일이 일어나고 있는지는 대상에 폴더를 생성하고 프로젝트에 있는 다른 파일을 복사하지 않는다는 것입니다.제가 원하는 것은 게시 웹 사이트 파일과 함께 리소스 폴더를 패키지에 포함하는 것입니다.리소스 폴더가 패키지의 일부가 되기를 원합니다.안내해주세요

 <?xml version="1.0" ?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
 <metadata>
<id>Services</id>
<version>1.0.0.0</version>
<authors></authors>
<owners></owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Services.nuspec build package</description>
<releaseNotes />
 </metadata>
 <files>
  <file src="..\Resources\**\*.*" target="Content\Resources" />
</files>
</package>

위 코드를 사용하여 패키지를 만든 후의 패키지 내용:-

 . _rels
 . package
 . content\resources 
 . [content_type
 . Services.nuspec
도움이 되었습니까?

해결책

OctoPack을 사용하는 경우, 이 동작이 예상됩니다.인용하자면 GitHub 문서:

만약 <files> 섹션이 존재하면 OctoPack은 패키지에 추가 파일을 자동으로 추가하려고 시도하지 않으므로 포함하려는 파일을 명시적으로 지정해야 합니다.

이 경로를 사용하는 경우에는 포함할 다른 모든 파일을 지정해야 합니다. <files> nuspec의 섹션입니다.

OctoPack을 사용하지 않는 경우, 유사한 규칙이 적용됩니다.보다 nuget.org의 설명서

패키지 만들기에 설명된 규칙을 따르는 경우 .nuspec 파일에 파일 목록을 명시적으로 지정할 필요가 없습니다.파일을 지정하면 규칙이 무시되고 .nuspec 파일에 나열된 파일만 패키지에 포함됩니다.

업데이트

내가 본 하이브리드 방법 중 하나는 MSBuild 게시 대상을 사용하여 웹 사이트를 로컬 폴더에 빌드 및 게시하고(.cs 소스와 같은 모든 컴파일 시간 파일을 필터링하기 위해) 추가 파일을 추가한 다음 간단히 수행하는 것입니다. 포함하다 <file src="**/*.*" /> 루트 게시 폴더 아래에 모든 것을 압축합니다.루트 경로/nuget.exe를 사용하여 약간의 사용자 정의가 필요하지만 프로세스가 좀 더 깔끔해지고 유지 관리가 약간 줄어들 수 있습니다.

여기에 유용한 정보가 있습니다 시작하는 데 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top