我们分发Visual Studio 2010项目文件。它是MSBuild风格项目文件的最低平台要求。用户需要根据需要进行升级。该项目还将每个配置设置为/arch:SSE2
作为默认值。用户需要根据需要进行升级。
由于使用/arch:SSE2
作为最低平台架构(相关,/arch setting for VS2010 - VS2015),我们在Visual Studio 2012及更高版本下遇到D9002脏编译。我们将以下内容添加到项目文件中以压缩警告:
<!-- Visual Studio 2012 dirty compile due to use of SSE2 -->
<ItemDefinitionGroup Condition="'$(VisualStudioVersion)'>='11.0'">
<ClCompile>
<DisableSpecificWarnings>9002;%(DisableSpecificWarnings)</DisableSpecificWarnings>
</ClCompile>
</ItemDefinitionGroup>
上面的代码在Visual Studio 2010上运行良好。在Visual Studio 2012下,它会产生更多噪音:
1>------ Build started: Project: cryptest, Configuration: Release x64 ------
1>cl : Command line warning D9014: invalid value '9002' for '/wd'; assuming '4999'
1>cl : Command line warning D9002: ignoring unknown option '/arch:SSE2'
Visual Studio抱怨它不知道警告是什么,然后发出警告。你不能把这些东西搞定......
我们有SDLC,我们关注Microsoft's recommendations。我们也采取更坚定的姿势,并使清洁编译安全门,因为(1)它导致用户的困难,(2)它在邮件列表上产生喋喋不休,并在问题跟踪器中报告。
我们如何为VS2012及以上版本禁用D9002?