为项目设置默认构建配置

时间:2015-11-16 21:05:04

标签: .net visual-studio-2010 project-files

我在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>

2 个答案:

答案 0 :(得分:5)

Visual Studio始终通过解决方案调用构建。每个解决方案配置都有一个(不区分大小写)名称,并将每个项目映射到其配置。可以通过 Build&gt;编辑解决方案配置在那里或在工具栏的下拉列表中选择配置管理器和当前活动的。

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

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

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

  • 以&#34; Debug&#34;开头的所有名称排在&#34; A&#34;。
  • 之前
  • S1 S2 S1 之前排序任何两个字符串 S1 S2 。 (␣表示空格。)

E.g。如果你有这个配置列表,&#34;全部调试&#34;默认选中。如果删除列表中的第一个配置,请关闭VS并删除*.suo文件,默认情况下将选择列表中的下一个。

Debug all
Debug
Debugging
A release
ARelease
Release
WinterBash

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

A release
ARelease
Debug
Debug all
Debugging
Release
WinterBash

使用哪种解决方案?

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

  1. 首选同一目录(MyProject.sln)中具有相同名称的解决方案。如果找到,则使用它。
  2. 搜索同一目录(*.sln)中的任何其他解决方案。如果只找到一个,则使用它。
  3. 在父目录中搜索任何解决方案(..\*.sln)。如果只找到一个,则使用它。
  4. 否则,VS会创建一个仅包含项目的新解决方案(名为MyProject.sln),并在退出时将其保存在哪里。这个新解决方案的构建配置与项目的配置相对应。
  5. 请注意,即将推出的VS 2017可能会有所不同,因为它甚至支持没有项目的裸文件。

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

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

答案 1 :(得分:0)

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