如何避免 Visual Studio 在目标框架名称目录中输出程序集?

Posted

技术标签:

【中文标题】如何避免 Visual Studio 在目标框架名称目录中输出程序集?【英文标题】:How to avoid Visual Studio outputs assemblies in Target Framework Name directories? 【发布时间】:2021-12-29 01:23:30 【问题描述】:

我们有一些 netstandard2.0 程序集。编译时它们在目录.\bin\Debug\netstandard2.0 中生成(netstandard2.0 目录名称为TFN the Target Framework Name)。但是,在项目属性中仅指定了 .\bin\Debug。我们想在.\bin\Debug 中生成这些程序集,以使我们所有的程序集都在同一个目录中。

我们开发了一个构建后事件来复制回 .\bin\Debug 中的程序集及其 json/pdb 文件,然后删除目录 .\bin\Debug\netstandard2.0。然而,这不是一个好的解决方案,因为增量编译期间使用的FastUpToDate 工具找不到.\bin\Debug\netstandard2.0\ProjectName.pdb,因此我们的 netstandard2.0 项目即使是最新的也总是会重新构建。

【问题讨论】:

这能回答你的问题吗? How do I set `OutputPath` in a Visual Studio 2017 project (new .csproj file format) without the target framework cluttering the resolved path? 是的,尽管用谷歌搜索还是找不到,谢谢 【参考方案1】:

在您的项目中将 AppendTargetFrameworkToOutputPath 设置为 false。

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

【讨论】:

太棒了,google了很久没找到,谢谢:-))

以上是关于如何避免 Visual Studio 在目标框架名称目录中输出程序集?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Studio 中选择 .NET 4.5.2 作为目标框架

Visual studio 2015编译项目报错 未能解析目标框架“.NETFramework,Version=v4.0”的 mscorlib

visual studio 中 如何还原.bak数据文件

.NET Core 未显示在 Visual Studio 2022 的目标框架下拉列表中

未安装 Unity 项目目标框架的 Visual Studio 15

Visual Studio 不在目标框架下拉列表中显示 .NET Core 2.2 [重复]