6

我在 Visual Studio 项目文件中有几种可能的配置。我如何指定默认选择哪一个(当不.suo存在时)?现在,当我在 Visual Studio 中打开项目时,默认选择调试配置。

项目文件的相关部分:

<PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>...</ProductVersion>
    <SchemaVersion>...</SchemaVersion>
    <ProjectGuid>{...}</ProjectGuid>
    <OutputType>...</OutputType>
    <RootNamespace>...</RootNamespace>
    <AssemblyName>AAAAA</AssemblyName>
    <MyType>Windows</MyType>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>Full</DebugType>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <Optimize>false</Optimize>
    <OutputPath>Bin\Release</OutputPath>
    <DocumentationFile>AAAAA.xml</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <DefineDebug>true</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <OutputPath>bin\</OutputPath>
    <DocumentationFile>AAAAA.xml</DocumentationFile>
    <PlatformTarget>AnyCPU</PlatformTarget>
</PropertyGroup>

我希望默认选择此配置:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>Full</DebugType>
    <DefineDebug>false</DefineDebug>
    <DefineTrace>true</DefineTrace>
    <Optimize>false</Optimize>
    <OutputPath>Bin\Release</OutputPath>
    <DocumentationFile>AAAAA.xml</DocumentationFile>
</PropertyGroup>
4

2 回答 2

11

Visual Studio 始终通过解决方案调用构建。每个解决方案配置都有一个(不区分大小写)名称,并将每个项目映射到其配置。可以通过Build > Configuration manager编辑解决方案配置,并在此处或工具栏的下拉菜单中选择当前活动的配置。

使用哪种解决方案构建配置?

活动构建配置保存在解决方案用户选项文件 ( .suo) 中。这是每个用户的配置,不应在源代码管理中进行检查。为此不存在共享配置。

如果没有.suo文件,VS 会选择配置,其名称按字母顺序排列,但有几个例外:

  • 所有以“Debug”开头的名称都排在“A”之前。
  • 对于任何两个字符串S1S2 , S1 ␣<em>S2 在 S1 之前排序。(␣ 表示空格。)

例如,如果您有此配置列表,则默认选择“全部调试”。如果删除列表中的第一个配置,关闭 VS 并删除*.suo文件,默认会选择列表中的下一个。

全部调试
调试
调试
发布
A释放
发布
冬季狂欢

请注意,VS 显示不同的顺序:

发布
A释放
调试
全部调试
调试
发布
冬季狂欢

使用哪种解决方案?

如果您MyProject.csproj直接打开项目文件(例如 ),Visual Studio 会尝试查找解决方案文件。

  1. 首选同目录(MyProject.sln)同名的解决方案。如果找到,则使用它。
  2. 搜索同一目录 ( *.sln) 中的任何其他解决方案。如果恰好找到一个,则使用它。
  3. 在父目录中搜索任何解决方案 ( ..\*.sln)。如果恰好找到一个,则使用它。
  4. 否则,VS 会创建一个仅包含项目的新解决方案(名为MyProject.sln),并在退出时询问将其保存在哪里。这个新解决方案的构建配置对应于项目的构建配置。

请注意,这在即将到来的 VS 2017 中可能会有所不同,因为它甚至支持没有项目的裸文件。

您可以在“属性”窗口中将解决方案的路径视为路径。(首先在解决方案资源管理器中选择解决方案。)


顺便说一句,PropertyGroup项目文件中的第一个指定了 MSBuild 在ConfigurationPlatform属性为空(未指定)时使用的默认值。Visual Studio 始终指定这些属性,因此默认值无关紧要。

于 2017-01-03T14:40:53.507 回答
0

我相信构建配置是按字母顺序列出的。这意味着“调试”配置将是默认项目。而“释放”不会。如果您希望 Release 成为默认配置,您可以创建一个新的构建配置并确保它显示在“调试”之前,使用字母排序,例如将构建配置命名为“ARelease”。不是一个完美的解决方案,但它有效。

于 2015-11-16T22:06:10.393 回答