이 포함되어 있습니다. 에 파일이 자동으로 포함되지 않게하려고합니다.: 기본을 무시이 나는 보통 사람들이 파일이 NuGet 패키지에 포함려고하는, 읽어 것과 정반대의 문제입니다
미리 컴파일 된 MVC 뷰 템플릿 (RazorGenerator.Mvc 사용), .less
파일 및 JavaScript를 필요에 따라 지원하는 라이브러리를 만들고 있습니다. 이 아이디어는 모든 사이트에 적용되는 기본 사항입니다. 프로젝트, 새로 만들어보기, .less
파일 또는 스크립트가 될 것에서 내용을 기본적으로
, nuget pack
어떤 파일이 빌드 작업 표시 포함되어 있습니다. 이 동작을 무시할 수있는 옵션이없는 것 같습니다. 이와 관련된 질문은 여기 empty <files>
node in the .nuspec
to stop all includes의 해결책을 제시하지만 난 일부 파일, 내가 선택한 단지에만 사람을 포함 할.
자, 임시 변통으로, 내가 통해 갈 수 있습니다, 명시 적으로 설정 모든 수 없습니다 내용, 내가 원하는 위치 내가하고 복사하지 않으려하고 파일을 다음 명시 적으로 설정 (대신 없음를 사용하지 않음) .nuspec
파일을 사용하여 복사했습니다. 그러나 내 미래의 자아와 같은 다른 개발자가이 단계를 잊어 버리면 새로 추가 된 파일이 패키지에 복사 된 후 다음 설치 또는 업데이트 중에 대상 프로젝트에 복사됩니다.
나는 OctoPack하고, 즉시이 .nuspec
에서 <files>
노드를 감지하는 기본적으로 아무것도 포함하지 그 뜻을 발견,하지만 난 방법을 이해하기 위해 인 TeamCity에서 무엇을 사용하고 내 빌드 서버 스크립트를 다시 작성하고 있지 않다 nuget pack 대신 OctoPack을 호출하면 좋은 옵션으로 나를 공격하지 않습니다. OctoPack에는 한계가 있습니다. 의존성을 수동으로 나열해야하며 .nuspec 파일의 대체 토큰은 (AssemblyInfo.cs
에서 읽는 대신) 명령 줄에서 전달되어야하며 도구가이 용도로 사용 된 것 같지 않습니다. "OctoPack은 배포하려는 프로젝트에만 설치해야합니다. 즉, 콘솔 응용 프로그램 프로젝트, Windows 서비스 프로젝트 및 ASP.NET 웹 응용 프로그램을 의미합니다. 단위 테스트, 클래스 라이브러리 및 기타 지원 프로젝트는 선택되지 않습니다. . " (OctoPack Documentation)
나는 단순히 BeforeBuild
이벤트 기간 동안 컨텐츠 그룹을 쓸어 msbuild
를 사용하여 한 시도 다음 대안 :
<Target Name="BeforeBuild">
<ItemGroup>
<Content Remove="**\*.*" />
<None Include="**\*.*" />
</ItemGroup>
<Message Text="Content files: @(Content)" Importance="High" />
</Target>
메시지는 콘텐츠 그룹이 비어 있지만 nuget pack
보이지 않는 것을 확인 걱정하다; 그것은 어쨌든 모든 파일을 여전히 포함합니다.
모든 것을 수동으로 표시 할 필요없이 누구나 패키지를 만들었습니까? Build Action : None OctoPack을 사용하지 않고?
"완벽한 해결책은 아니며, --no-default-content'와 같은 것이 될 것입니다. 더 완벽한 해결책은 이것을 제어하기 위해 .nuspec 파일에 무엇인가 쓸 수있게 해줍니다. 매번 어떤 매개 변수가 '너겟 (nuget)'에 전달 될지 기억할 것인가? – binki
지속적인 통합 서버를 사용하는 사람은 누구도 기억할 필요가 없습니다. 이제 새로운 종속성을 추가하거나 종속성 버전을 변경하면 packages.config에서 해당 데이터를 읽을 수있는 대신 nuspec에 수동으로 추가해야한다는 것을 기억해야합니다. –