更改生成输出目录

可以在预配置的基础上指定项目生成的输出的位置(用于调试、发布或两者)。

更改生成输出目录

  1. 要打开项目的属性页面,右键单击“解决方案资源管理器”中的项目节点,然后选择“属性”

  2. 根据项目类型选择相应的选项卡:

    • 对于 C#,选择“生成”选项卡
    • 对于 Visual Basic,选择“编译”选项卡
    • 对于 C++ 或 JavaScript,选择“常规”选项卡
  3. 在顶部的配置下拉列表中,选择你想要更改其输出文件位置的配置(“调试”、“发布”或“所有配置”)

  4. 在页面上找到输出路径条目,路径条目根据项目类型而有所不同:

    • C# 和 JavaScript 项目的输出路径
    • Visual Basic 项目的生成输出路径
    • Visual C++ 项目的输出目录

    键入要生成输出的路径(绝对或相对于根项目目录),或选择“浏览”以浏览到该文件夹

    Visual Studio C# 项目的输出路径属性

    注意

    某些项目会默认在生成路径中包括框架和运行时。 若要更改这一点,请在解决方案资源管理器中右键单击项目节点,选择“编辑项目文件”并添加以下内容

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

提示

如果系统未将输出生成到指定位置,请在 Visual Studio 的菜单栏上选择该位置,确保构建相应的配置(例如“调试”或“发布”)

在 Visual Studio 2019 中生成配置选取器。

更改生成输出目录

在 Visual Studio 2022 中,有多种项目设计器用户界面,具体取决于项目类型。 C# .NET Framework 和所有 Visual Basic 项目都使用旧版 .NET 项目设计器,但 C# .NET Core(和 .NET 5 及更高版本)项目使用当前 .NET 项目设计器。 C++ 项目使用自己的属性页用户界面。 本部分中的步骤取决于所用的项目设计器。

使用当前 .NET 项目设计器更改生成输出目录

  1. 右键单击“解决方案资源管理器”中的项目节点,然后选择“属性”。

  2. 展开“生成”部分,然后向下滚动到“输出”子部分。

  3. 找到 C# 的“基本输出路径”,然后键入要生成输出的路径(绝对或相对于根项目目录),或选择“浏览”,浏览到该文件夹。 请注意,配置名称将追加到基本输出路径,以生成实际输出路径。

    显示 .NET Core C# 项目的输出路径属性的屏幕截图。

    注意

    某些项目会默认在生成路径中包括框架和运行时。 若要更改这一点,请在解决方案资源管理器中右键单击项目节点,选择“编辑项目文件”并添加以下内容

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

提示

如果系统未将输出生成到指定位置,请在 Visual Studio 的菜单栏上选择该位置,确保构建相应的配置(例如“调试”或“发布”)

Visual Studio 2022 中的生成配置选取器的屏幕截图。

使用旧版 .NET 项目设计器或 C++ 属性页更改生成输出目录

  1. 右键单击“解决方案资源管理器”中的项目节点,然后选择“属性”。

  2. 根据项目类型选择相应的选项卡:

    • 对于 C#,选择“生成”选项卡
    • 对于 Visual Basic,选择“编译”选项卡
    • 对于 C++ 或 JavaScript,选择“常规”选项卡
  3. 在顶部的配置下拉列表中,选择你想要更改其输出文件位置的配置(“调试”、“发布”或“所有配置”)

  4. 在页面上找到输出路径条目,路径条目根据项目类型而有所不同:

    • C# 和 JavaScript 项目的输出路径
    • Visual Basic 项目的生成输出路径
    • Visual C++ 项目的输出目录

    键入要生成输出的路径(绝对或相对于根项目目录),或选择“浏览”,浏览到该文件夹

    显示 C# .NET Framework 项目的输出路径属性的屏幕截图。

    注意

    某些项目会默认在生成路径中包括框架和运行时。 若要更改这一点,请在解决方案资源管理器中右键单击项目节点,选择“编辑项目文件”并添加以下内容

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

生成到公共输出目录

默认情况下,Visual Studio 将解决方案中的每个项目生成到其在解决方案中自己的文件夹中。 可以通过更改项目的生成输出路径来强制将所有输出都放到相同的文件夹中。

将所有解决方案输出都放到一个共同目录中

  1. 单击解决方案中的项目。

  2. “项目” 菜单上,单击 “属性”

  3. 在每个项目中,根据其类型选择“编译”或“生成”,并将“输出路径”或“基本输出路径”设置为要用于解决方案中所有项目的文件夹。

  4. 打开项目的项目文件,并将以下属性声明添加到第一个属性组。

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <UseCommonOutputDirectory>true</UseCommonOutputDirectory>
    </PropertyGroup>
    

    UseCommonOutputDirectory 设置为 trueVisual Studio 及其基础生成引擎 (MSBuild) 就能知道你将多个项目输出放在同一文件夹中,因此 MSBuild 会省略项目依赖于其他项目时通常发生的复制步骤。

  5. 为解决方案中的所有项目重复步骤 1-4。 如果有一些不应使用公共输出目录的异常项目,可以跳过这些项目。

设置项目(.NET 项目)的中间输出目录

  1. 打开项目文件。

  2. 将以下属性声明添加到第一个属性组。

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <IntermediateOutputPath>path</IntermediateOutputPath>
    </PropertyGroup>
    

    路径是相对于项目文件的路径,你也可以使用绝对路径。 如果要将项目名称放在路径中,可以使用 MSBuild 属性 $(MSBuildProjectName)$(MSBuildProjectDirectory) 来引用它。 有关其他可以使用的属性,请参阅 MSBuild 保留属性和已知属性

  3. 生成时,Visual Studio 仍会在项目文件夹下创建 obj 文件夹,但它为空。 可以在生成过程中将其删除。 一种方法是添加后期生成事件来运行以下命令:

    rd "$(ProjectDir)obj" /s /q
    

    请参阅指定自定义生成事件