설정 vcbuild 을 통해 환경 msbuild
-
05-07-2019 - |
문제
가 msbuild 프로젝트 파일에 사용되는 여러 가지 건물 C++프로젝트(*.vcproj).여기에서의 한 부분이 일반적인 프로젝트 파일에서는 글로벌 환경에 대한 변수를 구축하는 대로 재정의 속성:
<PropertyGroup>
<MYBINDIR>d:\buildsysroot\bin</MYBINDIR>
<MYLIBDIR>d:\buildsysroot\lib</MYLIBDIR>
...
</PrpertyGroup>
<ItemGroup>
<MyItems Include="d:\buildsysroot\myproject\myproject.vcproj"/>
</ItemGroup>
<Target Name="Release_x64">
<VCBuild Projects="@(MyItems)" Configuration="Release_dll|x64"/>
</Target>
이러한 환경 변수를 사용하여 모든 vcproj 파일을 통해,재산 매입니다.여기에 발췌 vcproj:
<Configuration
Name="Release_dll|x64"
ConfigurationType="1"
InheritedPropertySheets="$(BUILDPROPSDIR)\defaults.vsprops;$(BUILDPROPSDIR)\build_dll.vsprops"
>
이것은 어떻게 시 장을 보면:
<VisualStudioPropertySheet
Name="defaults"
OutputDirectory="$(MYBINDIR)\_$(ConfigurationName)_$(PlatformName)"
IntermediateDirectory="$(MYBUILDDIR)_$(ProjectName)_$(ConfigurationName)_$(PlatformName)"
>
<Tool
Name="VCLinkerTool"
AdditionalLibraryDirectories=""$(MYLIBDIR)""
/>
<VisualStudioPropertySheet/>
문제입니다:빌드 할 때,가치에 대한 환경 변수를 선언에 msbuild 파일(MYBINDIR,MYLIBDIR)지 않으로 그것을 만들 재산 시트,하지만 보이 될 지역을 msbuild 파일만:내 msbuild 프로젝트 MYBINDIR 확장하"d:\buildsysroot\bin"하지만 내 vc 프로젝트 MYBINDIR 확장하"d:\projects\bin"값이 설정한 전 세계적으로(예를 들어를 통해 내 컴퓨터->Advanced->EnvironmentVariables) 고 어야 하는 편이기 때문에 그것은 방법은 나의 주요한 개발 환경을 설정합니다.
어떻게 통과하는 환경 설정에서 msbuild 파일을 VCBuild 작업?
저는 이 문제를 해결할 수 있을 사용하여 배치 파일을 선언하는 환경이 있을 사용하여'설정',그리고 msbuild 파일그게 내가 사용하는것,그러나 나아보세요 위의 방법으로 그것은 단지 하나의 전화를 msbuild 으로 인수 한 그리고 그것.
편집
저는 솔루션이 필요했고 빠르게 내놓았 사용자 지정 작업을 설정하는 환경에서 같은 방법으로 배치 파일을 할 것입니다,하지만 보너스의 일 이내에 그것 msbuild..는 작업의 실행()메소드는 단순히 환경이다.SetEnvironmentVariable(var val).이것은 여전히 설정이 필요한 프로세스의 환경에,내가 듣고 기뻐하는 경우 다른 방법이 있다!
해결책
때문에 아무도 대답했/댓글을 나와 나의 자신의 대답:사용자 지정 작업을 설정하는 프로세스의 환경에 사용하는 환경입니다.SetEnvironmentVariable(var val)
다른 팁
내가 알지 못하는 경우 이것은 당신이 무엇을 행하려고 노력하는 것입니다.하지만 당신이 시도하고"재정의"속성에 VCBuild 작업?그것은 눈부시게 분명하는 방법을 사용합니다.하지만 나는 대을 만듭니다.vsprops 한 특성을 나는 걱정(OutputDirectory 및 IntermediateDirectory).그때 편집니다.vcproj 파일을 제거하 InheritedPropertySheets 특성는 추가됩니다.그때 나는 추가 재정의 특성을 VCBuild 작업에서 나 MSBuild 파일입니다.는 것을 내게 주는 행동을 찾고 있었습니다.수도 있는 다른 문제지만...
니