VS2022更改项目生成输出目录
使用VS2022,.NET6.0进行开发项目时,软件在bin/debug下生成net6.0-windows文件夹,项目文件都生成到该文件夹中。要修改项目的生成文件后不带框架版本或运行时标识符,首先想到的是:在项目属性中点击【生成】选项,展开菜单中点击【输出】选项,在输入的基路径中选择或者填入地址,重新生成项目后,还是创建了“net6.0-windows”文件夹;所以此方法是行不通的。
微软官方解析:默认情况下,某些项目(.NET 和 ASP.NET Core)会在最终输出路径中包括框架版本或运行时标识符。若要更改这一点,请在解决方案资源管理器中右键单击项目节点,选择“编辑项目文件(或者在“解决方案中”,双击需要修改输出路径的项目,即打开项目文件.csproj文件)”并添加以下内容:
<PropertyGroup>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>
生成到公共输出目录
默认情况下,Visual Studio 将解决方案中的每个项目生成到其在解决方案中自己的文件夹中。 可以通过更改项目的生成输出路径来强制将所有输出都放到相同的文件夹中。
- 清理解决方案以移除任何现有输出文件(“生成”>“清理解决方案”)。
- 单击解决方案中的项目。
- 在 “项目” 菜单上,单击 “属性” 。
- 在每个项目中,根据其类型选择“编译”或“生成”,并将“输出路径”或“基本输出路径”设置为要用于解决方案中所有项目的文件夹。
- 打开项目的项目文件,并将以下属性声明添加到第一个属性组。
<PropertyGroup>
<!-- existing property declarations are here -->
<UseCommonOutputDirectory>true</UseCommonOutputDirectory>
</PropertyGroup>
将 UseCommonOutputDirectory 设置为 trueVisual Studio 及其基础生成引擎 (MSBuild) 就能知道你将多个项目输出放在同一文件夹中,因此 MSBuild 会省略项目依赖于其他项目时通常发生的复制步骤。
6. 为解决方案中的所有项目重复步骤 2-5。 如果有一些不应使用公共输出目录的异常项目,可以跳过这些项目。