如何在VisualStudio解决方案中保存目标平台(考虑版本控制和测试)

Pat*_*erg 1 version-control build-process visual-studio target-platform

Visual Studio(至少VisualStudio 2010)将目标平台设置存储在*.suo文件中,显然不受版本控制.

在我的情况下,这对于中央构建来说没有问题,因为它在msbuild上使用命令行选项,强制目标平台根据需要为x86.

但是,如果一位同事检查我的项目,他将总是为AnyCPU构建并测试它.因为他没有*.suo文件VisualStudio将使用默认设置.

不管是不是,同事有义务测试x86.

是否有一种简单的方法可以安全地保留目标平台的解决方案?强制默认值的环境变量不是我们需要的,但足够好且足够简单.

Han*_*ant 6

Visual Studio ...将目标平台设置存储在*.suo文件中

它没有,它将它存储在项目文件中.我创建的一个相关片段:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>x86</PlatformTarget>
    // etc...
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

它配置了Project + Properties,Build选项卡,Platform target组合框.重复发布配置.只有EXE项目上的设置很重要,那就是决定过程位数的那个.DLL没有选择,应该使用AnyCPU.


在VS2010中,你很可能因为一个相当剧烈的设计错误而被绊倒.另一个项目是解决方案平台名称,例如,突出显示在Build + Configuration Manager对话框中.对于托管项目来说,这总是AnyCPU,VS2010通过将默认值重命名为"x86"来实现这一点.当您从早期版本导入项目时,会产生一个很大的混乱,产生"混合平台"配置.是的,最后一个选择保存在.suo文件中.

这与托管项目无关,它只对C++项目有意义.设置选择一组不同的构建工具.64位编译器和链接器是不同的程序.对于托管项目不存在问题,在运行时通过抖动选择确定位数,并且无论所需的平台目标如何,都使用完全相同的C#编译器.

消除这类错误的最好方法是积极删除平台,只保留一个平台.使用Build + Configuration Manager,在右上方的组合框中选择"编辑"条目,然后单击"删除"以获取无关平台,直到只剩下AnyCPU.还建议更新您的VS版本,这个错误在VS2012中再次得到纠正.