문제

JavaScript 파일 세트에서 jsmin.exe를 실행하는 ASP.NET 웹 컨트롤 (Server Control) 프로젝트에 대한 사전 구축 조치를 추가했습니다. 이 출력 파일은 소스 제어 트리의 일부이며 어셈블리에 포함됩니다.

문제는 사전 건축이 실행될 때 JSMIN이 파일을 읽기 위해 쓸 수 없다는 것입니다. 미리 파일을 확인할 수 있습니까? 또는 명령 줄에 파일의 속성을 설정해야합니까?

문제에 대한 개선 된 솔루션을 환영합니다.

업데이트Mehmet의 답변에 관한 한 가지 작은 문제 -vs 디렉토리를 선불로 바꿔야합니다.

"$(DevEnvDir)tf" checkout /lock:none "$(ProjectDir)myfile" 
도움이 되었습니까?

해결책

Team Foundation Server를 사용하는 경우 사용할 수 있습니다. 팀 재단 명령 라인 유틸리티 (tf.exe) 사전 건설 중에 파일을 확인한 다음 건물 사후에 다시 확인하십시오. 소스 컨트롤에 다른 것을 사용하는 경우 tf.exe와 같은 명령 줄 도구가 있는지 확인할 수 있습니다.

다른 팁

빌드의 일부로 파일을 확인하고 싶지 않다면 (일반적으로 이런 종류의 일에 대해서는 그렇지 않은 경우) JSMIN을 실행하기 전에 .js 파일의 속성을 설정하는 것입니다. 파일을 읽을 수있는 가장 쉬운 방법은 MSBuild 커뮤니티 확장. 동일한 커뮤니티 확장은 MSBuild에서 JSMIN을 쉽게 호출하기위한 JSCompress 작업을 제공합니다.

따라서 다음과 같은 것과 같은 것이 있습니다 (테스트되지 않음).

<Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />

<!-- rest of TFSBuild.proj file -->

<Target Name="AfterGet">    
  <Message Text="Compressing Javascript files under &quot;$(SolutionRoot)&quot;." />   
  <CreateItem Include="$(SolutionRoot)\**\*.js">
    <Output TaskParameter="Include" ItemName="JsFiles"/>
  </CreateItem>
  <Attrib Files="@(JsFiles)" ReadOnly="false"/>
  <JSCompress Files="@(JsFiles)" />
</Target>

파일을 얻은 후 파일을 수정하면 증분 빌드로 이동하려고하면 문제가 발생할 수 있습니다.

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