为项目设置默认构建配置
Set a default build configuration for project
我在 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>
我相信构建配置是按字母顺序列出的。这意味着 "Debug" 配置将成为默认项。而 "Release" 不会。如果您希望 Release 成为默认配置,您可以创建一个新的构建配置并确保它显示在 "Debug" 之前,方法是使用字母排序,例如将构建配置命名为 "ARelease"。
不是一个完美的解决方案,但它有效。
Visual Studio 始终通过解决方案调用构建。每个解决方案配置都有一个(不区分大小写)名称,并将每个项目映射到其配置。可以通过 Build > Configuration manager 编辑解决方案配置,并在此处或在工具栏的下拉菜单中选择当前活动的配置。
使用哪个解决方案构建配置?
活动构建配置保存在解决方案用户选项文件 (.suo
) 中。这是每个用户的配置,不应在源代码管理中检查。不存在此的共享配置。
如果不存在 .suo
文件,VS 将选择名称按字母顺序排在第一位的配置,但有几个例外:
- 所有以 "Debug" 开头的名称排在 "A" 之前。
- S1␣S2 对于任意两个字符串 在 S1 之前排序S1 和 S2。 (␣表示一个space。)
例如如果您有此配置列表,默认情况下会选择 "Debug all"。如果删除列表中的第一个配置,关闭 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 会尝试找到解决方案文件。
- 同目录(
MyProject.sln
)同名解决方案优先。如果找到,则使用它。
- 搜索同一目录 (
*.sln
) 中的任何其他解决方案。如果 正好找到一个,则使用它。
- 在父目录中搜索任何解决方案 (
..\*.sln
)。如果 正好找到一个,则使用它。
- 否则,VS 会创建一个仅包含项目的新解决方案(名为
MyProject.sln
),并在退出时询问将其保存在何处。这个新解决方案的构建配置与项目的构建配置相对应。
请注意,这在即将推出的 VS 2017 中可能会有所不同,因为它甚至支持没有项目的裸文件。
您可以在属性 window 中看到解决方案的路径为 Path。 (Select 首先解决方案资源管理器中的解决方案。)
顺便说一句,项目文件中的第一个 PropertyGroup
指定当 Configuration
和 Platform
属性为空(未指定)时 MSBuild 使用的默认值。 Visual Studio 始终指定这些属性,因此默认值无关紧要。
我在 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>
我相信构建配置是按字母顺序列出的。这意味着 "Debug" 配置将成为默认项。而 "Release" 不会。如果您希望 Release 成为默认配置,您可以创建一个新的构建配置并确保它显示在 "Debug" 之前,方法是使用字母排序,例如将构建配置命名为 "ARelease"。 不是一个完美的解决方案,但它有效。
Visual Studio 始终通过解决方案调用构建。每个解决方案配置都有一个(不区分大小写)名称,并将每个项目映射到其配置。可以通过 Build > Configuration manager 编辑解决方案配置,并在此处或在工具栏的下拉菜单中选择当前活动的配置。
使用哪个解决方案构建配置?
活动构建配置保存在解决方案用户选项文件 (.suo
) 中。这是每个用户的配置,不应在源代码管理中检查。不存在此的共享配置。
如果不存在 .suo
文件,VS 将选择名称按字母顺序排在第一位的配置,但有几个例外:
- 所有以 "Debug" 开头的名称排在 "A" 之前。
- S1␣S2 对于任意两个字符串 在 S1 之前排序S1 和 S2。 (␣表示一个space。)
例如如果您有此配置列表,默认情况下会选择 "Debug all"。如果删除列表中的第一个配置,关闭 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 会尝试找到解决方案文件。
- 同目录(
MyProject.sln
)同名解决方案优先。如果找到,则使用它。 - 搜索同一目录 (
*.sln
) 中的任何其他解决方案。如果 正好找到一个,则使用它。 - 在父目录中搜索任何解决方案 (
..\*.sln
)。如果 正好找到一个,则使用它。 - 否则,VS 会创建一个仅包含项目的新解决方案(名为
MyProject.sln
),并在退出时询问将其保存在何处。这个新解决方案的构建配置与项目的构建配置相对应。
请注意,这在即将推出的 VS 2017 中可能会有所不同,因为它甚至支持没有项目的裸文件。
您可以在属性 window 中看到解决方案的路径为 Path。 (Select 首先解决方案资源管理器中的解决方案。)
顺便说一句,项目文件中的第一个 PropertyGroup
指定当 Configuration
和 Platform
属性为空(未指定)时 MSBuild 使用的默认值。 Visual Studio 始终指定这些属性,因此默认值无关紧要。