Visual studio Configuration 和 Platform

本文详细解析了Visual Studio中工具栏的active选项与Configuration Manager的关系,解释了这些选项如何影响解决方案配置(sln文件)及项目配置(csproj文件)。通过实际案例展示了不同配置组合对编译过程的具体影响。

0. 工具栏的active选项和Configuration manager顶部的选项是完全一致的,修改其中一个会导致另一个立即变化。


1. 变更active选项(即在工具栏下拉列表选择不同的选项)并不会修改sln文件。可能会修改.vs下面的隐藏文件,这样你下次打开vs时会记住上次的选项。

2. 每一个active选项对应的是Project Contexts的一个组合。

每次选择一个不同的active选项,则下面的Project Contexts也立即改变。

比如上图对应的是hackerrank采用release和any cpu,而ScopeApplication2采用Release和x86。

hackerrank对应的sln文件里的这两行:

{1F2020AD-E03D-4341-B66A-F96DF2151719}.Release|Any CPU.ActiveCfg = Release|Any CPU

{1F2020AD-E03D-4341-B66A-F96DF2151719}.Release|Any CPU.Build.0 = Release|Any CPU

而ScopeApplication2对应的是:

{81EBD69F-915F-4212-A1E7-8DC2A2BABC1D}.Release|Any CPU.ActiveCfg = Release|x86

等号前面的是solution configuration,也就是active里的选项。

等号后面的是project configuration,也就是Project Contexts里的值,同样也是csproj文件里$(Configuration)|$(Platform)的值。

注意:如果勾了build,则会多出Build.0这一行,不勾则没有Build.0。

3. active configuration 和 active platform是完全独立的。sln文件里会为每一个project配置二者的全部组合。

比如platform添加一个mycpu,则所有的project都会多出如下配置:
Debug|mycpu.ActiveCfg = Release|Any CPU

Release|mycpu.ActiveCfg = Release|Any CPU

active configuration 和 active platform的名字也不具备特殊含义,只是个名字而已。

Project Contexts里的platform比如x64,也只是个名字。

4. 添加新的configuration或platform时,如果勾上create new project configurations,则会修改每个project的csproj文件。

添加类似如下内容:

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'MyConf|AnyCPU'">
    <OutputPath>bin\test\</OutputPath>
  </PropertyGroup>

但是删除时却并不会同时从csproj里删除。

5. 决定如何编译的是在csproj文件里。比如

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <PlatformTarget>AnyCPU</PlatformTarget>
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
Debug和Release不需配置也默认支持。

vs会根据当前active config,找到每个project对应的Configuration|Platform,并设置变量$(Configuration)|$(Platform),也就是build一开始打印出来的值。

Build started: Project: hackerrank, Configuration: Debug Any CPU

然后根据将$(Configuration)|$(Platform)决定如何build。

参考资料:

Any CPU vs x86 vs x64 Solution Platforms

https://social.msdn.microsoft.com/Forums/en-US/5ad0ff2c-558c-43ba-a59d-9cd0a0785103/any-cpu-vs-x86-vs-x64-solution-platforms?forum=netfx64bit

Solution configurations & project configurations

https://blogs.msdn.microsoft.com/cflaat/2003/08/14/solution-configurations-project-configurations/

Understanding Build Configurations

https://msdn.microsoft.com/en-us/library/kkz9kefa.aspx



在安装 Visual Studio 时,若遇到 `Microsoft.VisualStudio.Setup.Configuration` 组件配置错误导致安装失败,这通常与系统中的残留配置文件、权限问题或 .NET Framework 相关依赖项损坏有关。以下是几种可行的解决方法: ### 清理用户配置目录 尝试删除当前用户的 Visual Studio 配置缓存目录,路径为 `{AppData}\Roaming\Microsoft\VisualStudio\{版本号}`。例如,在 Windows 上可进入以下路径: ``` C:\Users$$用户名]\AppData\Roaming\Microsoft\VisualStudio\14.0 ``` 将其中的内容清空,并以管理员身份重新启动 Visual Studio 安装程序[^1]。 ### 检查并修复 .NET Framework 环境 由于 Visual Studio 依赖于 .NET Framework 运行环境,若之前安装了其他开发工具(如 F# 或 SQL Server),可能导致组件冲突。建议使用 [.NET Framework 修复工具](https://dotnet.microsoft.com/platform/support-policy) 或通过 Windows 更新来确保 .NET Framework 处于最新状态[^2]。 ### 使用命令行重置 Visual Studio 安装 打开命令提示符(以管理员身份运行),执行以下命令来重置安装过程: ```bash vs_installer.exe --reset ``` 该命令会尝试清除不完整的安装状态并恢复默认设置。 ### 手动注册 Setup.Configuration 组件 如果上述方法无效,可以尝试手动注册相关 DLL 文件。进入 Visual Studio 安装目录下的 `Common7\IDE\CommonExtensions\Microsoft\Setup` 路径,找到 `Microsoft.VisualStudio.Setup.Configuration.dll` 文件,并运行以下命令: ```bash regsvr32 Microsoft.VisualStudio.Setup.Configuration.dll ``` ### 启用日志记录排查具体错误 启用详细的安装日志可以帮助识别具体的失败原因。在安装过程中添加如下参数: ```bash vs_installer.exe --log C:\vs_install.log ``` 查看日志文件后,可进一步定位是哪一步骤导致 `Microsoft.VisualStudio.Setup.Configuration` 初始化失败[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值