2011-08-15 3 views
2

MSBuild를 사용하여 명령 줄에서 WP7 솔루션 파일을 만들려고합니다 (VS에서 솔루션 파일을 완벽하게 빌드 함). 지금까지 나는 다음과 같습니다WP7 솔루션의 명령 줄에서 MSBuild를 사용하려고 시도했습니다.

..\Tools\NuGet\nuget install $(ProjectDir)packages.config -o $(SolutionDir)Packages 
:

msbuild Test.WP7.sln /t:rebuild /p:OutputPath="bin\Release" /p:Platform="Any CPU" /p:Configuration="Release" 

오전 데 문제가있는 NuGet 패키지가 필요한 설치 사전 빌드 단계이며,이 도구는 솔루션 파일과 다른 상대 디렉토리에 의해 참조입니다

"C : \ 일 \ 테스트 \ 트렁크 \ 테스트 \의 test.WP7.sln"(대상을 재 구축) (커맨드 라인에서 실행할 때

지금은 MSBuild는 MSB3073 오류 등이 디렉토리를 찾아 반환 할 수 없습니다 1) -> "C : \ Work \ test \ trunk \ test \ tes t.Core.View.ViewModel \ test.Core.View.ViewModel.csproj "(대상 재 작성) (4) -> c : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Microsoft.Common.targets (902 , 9) : 오류 MSB3073 : 명령 ".. \ Tools \ NuGet \ nuget은 C : \ Work \ test \ trunk \ test \ test.Core.View.ViewModel \ packages.config -o C : \ Work \ test \ 트렁크 \ 테스트 \ 패키지는 "코드 3으로 종료 [의 C : \ 일 \ 테스트 \ 트렁크 \ 테스트 \ test.Core.View.ViewModel \ test.Core.View.ViewModel.csproj]

모든 아이디어를 어떻게 프로젝트 또는 솔루션 파일을 변경하지 않고도이 기능을 사용할 수 있습니까?

답변

4

NuGet에 대한 상대 경로를 사용하지 마십시오. ... 거기에서

<Target Name="BeforeBuild"> 
    <Exec Condition="Exists('$(ProjectDir)packages.config')" 
      Command="&quot;$(SolutionDir)Tools\nuget.exe&quot; install &quot;$(ProjectDir)packages.config&quot; -o &quot;$(SolutionDir)Packages&quot;" /> 
</Target> 
+0

그것은, 솔루션 디렉토리 외부의 하나로서 디렉토리를 백업 – AwkwardCoder

+2

을하지만 당신은 빌드 위치를 기준으로 지정된 대신이처럼 $(SolutionDir) 변수를 사용합니다. 따라서 올바른 폴더에 빌드하지 않으면 작동하지 않아야합니다. '$ (SolutionDir) \ .. \ Tools \ NuGet \ nuget.exe'를 대신 사용하십시오. 하지만 글로벌 자산이 아니라 솔루션의 일부로 nuget.exe 도구를 사용해야합니다. –

+0

은 경로를 '$ (SolutionDir) .. \ Tools' – AwkwardCoder

관련 문제