[참고 :이 질문은 비슷하지만 동일하지this one으로.]모든 Visual Studio 2008 "매크로"를 Python 스크립트에 전달하는 방법은 무엇입니까?
Visual Studio에서 포함 (C에 전혀 관계가없는 ++ 매크로) 종류의 환경 변수를 시뮬레이션 수십 "매크로"를 정의 진행중인 빌드에 대한 정보. 예 :
ConfigurationName IntDir RootNamespace TargetFileName DevEnvDir OutDir SafeInputName TargetFramework FrameworkDir ParentName SafeParentName TargetName FrameworkSDKDir PlatformName SafeRootNamespace TargetPath FrameworkVersion ProjectDir SolutionDir VCInstallDir FxCopDir ProjectExt SolutionExt VSInstallDir InputDir ProjectFileName SolutionFileName WebDeployPath InputExt ProjectName SolutionName WebDeployRoot InputFileName ProjectPath SolutionPath WindowsSdkDir InputName References TargetDir WindowsSdkDirIA64 InputPath RemoteMachine TargetExt
: 여기
ConfigurationName Release TargetPath D:\work\foo\win\Release\foo.exe VCInstallDir C:\ProgramFiles\Microsoft Visual Studio 9.0\VC\내가 (당신은 당신이 사용하는 VS 버전에 따라 다를 수 있습니다 및 활성화하는 도구)를 참조하십시오 43 내장 매크로의 전체 집합입니다 이 중 빌드 이벤트에 사용되는 환경에는 4 개 (
FrameworkDir
,
FrameworkSDKDir
,
VCInstallDir
및
VSInstallDir
) 만 설정됩니다.
Brian은 빌드 작업이 실행되는 환경에서 설정되도록 사용자 정의 매크로를 정의 할 수 있습니다. 내 문제는 내장 된 매크로입니다.
Visual Studio 포스트 빌드 이벤트를 사용하여 빌드 프로세스의 일부로 파이썬 스크립트를 실행합니다. 환경의 스크립트에 전체 매크로 집합 (내장 및 사용자 정의)을 전달하고 싶지만 어떻게해야할지 모르겠다. 스크립트 내에서 일반적인 환경 변수 (예 : Path, SystemRoot)에 액세스 할 수 있지만 이러한 "매크로"는 사용할 수 없습니다. 이제 내가 할 수있는 것은 내가 스크립트에서 처리 할 수있는 명명 된 옵션으로 하나씩 전달하는 것입니다. 목에 통증이있는 것은, 빌드 후 이벤트 명령 줄의 크기에 제한이 외에도
postbuild.py --t="$(TargetPath)" --c="$(ConfigurationName)"그래서 나는 할 수 없습니다 : 예를 들어,이 내 빌드 후 이벤트 명령 줄은 모습입니다 명령 줄이 잘 렸기 때문에이 방법을 사용하여 수십 개의 매크로를 전달할 수 있습니다.
매크로 이름과 값의 전체 집합을 MSBuild로 전환 할 필요가없는 명령 (네이티브 VC++에서 사용할 수 없다고 생각하는)이나 다른 make와 유사한 빌드로 전달하는 방법이 있는지 아는 사람은 누구입니까? 수단?
좋은 생각이지만 VisualStudio 빌드 이벤트에서 호출 할 수있는 명령 줄의 길이에는 제한이 있습니다. 128 또는 256 자 정도입니다. 너무 짧아서 N 개의 스크립트를 호출 할 수 없습니다. N = #macros (약 43 개의 내장 함수와 사용자가 정의한 함수 모두) – jwfearn