
<VST2_32_COMMAND_ARGS>$(TargetPath) /noload /nosave /noexc /noft</VST2_32_COMMAND_ARGS>
当我加载项目,并查看属性,调试,命令参数,我可以访问该宏VST2_32_COMMAND_ARGS.但是字符串被评估为/ noload / nosave / noexc / noft
基本上,不评估$(TargetPath).在我的例子中,该路径指向一个DLL,所以它应该像这样的东西:
"C:\Program files (x86)\VstPlugins\Plug\vst2\Win32\bin\MyPlug.dll" /noload /nosave /noexc /noft
但它空洞.我该怎么办呢?还试过这个:
<VST2_32_COMMAND_ARGS>"$(TargetPath)" /noload /nosave /noexc /noft</VST2_32_COMMAND_ARGS>
但结果是:
"" /noload /nosave /noexc /noft解决方法
$(TargetPath) not evalutated on loading macro?
要解决此问题,您应该在导入文件Microsoft.Cpp.targets后导入custom.props文件:
<import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <import Project="Custom.props" />
那是因为文件Microsoft.Cpp.Current.targets设置的值为Macros for Build Commands and Properties:
<Target name="SetUserMacroEnvironmentvariables" Condition="'@(BuildMacro)' != '' and '$(DesignTimeBuild)' != 'true'"> <SetEnv Condition="'%(BuildMacro.Environmentvariable)' == 'true'" name ="@(BuildMacro)" Value ="%(BuildMacro.Value)" Prefix ="false"> <Output TaskParameter="OutputEnvironmentvariable" Propertyname="%(BuildMacro.IDentity)"/> </SetEnv> </Target>
并且文件Microsoft.Cpp.Current.targets由文件Microsoft.Cpp.targets导入:
<import Condition="'$(_Redirect)' != 'true'" Project="$(VCTargetsPath)\Microsoft.Cpp.Current.targets" />
因此,如果在导入文件Microsoft.Cpp.targets之前调用自定义文件中的某个宏,则MSBuild无法获取宏的值.
您可以通过以下路径获取这些.targets文件:
C:\Program files (x86)\Microsoft Visual Studio17\Enterprise\Common7\IDE\VC\VCTargets
为了验证VST2_32_COMMAND_ARGS的自定义值,我添加了一个简单的目标来输出该值.所以你的项目文件应该像:
<import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <importGroup Label="ExtensionTargets"> </importGroup> <import Project="Custom.props" /> <Target name="TestByCustom" AfterTargets="Build"> <Message Text="$(VST2_32_COMMAND_ARGS)"></Message> </Target>
构建完成后,我们可以得到$(TargetPath)的值:
我的custom.props文件:
<Project Toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <VST2_32_COMMAND_ARGS>"$(TargetPath)" /noload /nosave /noexc /noft</VST2_32_COMMAND_ARGS> </PropertyGroup></Project>
希望这可以帮助.
总结以上是内存溢出为你收集整理的visual-c – $(TargetPath)在加载宏时没有评估?全部内容,希望文章能够帮你解决visual-c – $(TargetPath)在加载宏时没有评估?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)