error MSB4095:Visual Studio项目属性对话框如何正确添加自定义设置
错误原因
报错MSB4095的核心原因是混淆了MSBuild中项目属性和项元数据的引用语法:
你在XAML规则中定义的DlibCUDAEnabled是项目级全局配置属性,需要使用$()格式引用,而你错误使用了仅用于引用项元数据的%()格式,MSBuild无法匹配到对应项的元数据因此抛出错误。
修复方法
修改.targets文件中的DlibSetDefines目标,将所有%(DlibCUDAEnabled)替换为$(DlibCUDAEnabled)即可,修改后对应代码如下:
<Target Name="DlibSetDefines" BeforeTargets="PreBuildEvent"> <Message Text="Setting DLIB_USE_CUDA=$(DlibCUDAEnabled)" /> <ItemGroup> <ClCompile> <PreprocessorDefinitions>DLIB_USE_CUDA=$(DlibCUDAEnabled);%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> </ItemGroup> </Target>
后续你需要引用同规则下定义的DlibCUDAPath属性时,也使用$(DlibCUDAPath)格式即可。
内容的提问来源于stack exchange,提问作者Tomáš Zato
相关产品推荐
相关产品推荐

