首页 > 解决方案 > 从 Settings.settings 生成的 *.config 部分不遵守 Visual Studio XML 设置

问题描述

我正在使用一个主要由面向 .NET Framework 4.x 的项目组成的大型解决方案。解决方案中的许多项目都使用了 Settings.settings 文件。使用 Visual Studio 的 .settings 文件的默认编辑器添加新设置或更改值时,更改会反映在相关项目的 app.config 文件中。

此时自动生成的配置部分被格式化为每行具有多个属性,直到某个行长度限制,此时属性将换行到新行。例如,我们可能会看到如下内容:

<setting name="SomeBackgroundTaskIntervalSeconds" serializeAs="String">
    <value>60</value>
</setting>

但是,同时我们在 Visual Studio Tools -> Options -> Text Editor -> XML -> Formatting 中也有设置。我们将“属性”选项设置为“在单独的行上对齐每个属性”,这是我们作为开发团队对 XML 格式的偏好,我们在团队周围和新开发人员共享一个 .vssettings 文件,以确保我们是都在同一页面上。这意味着,如果有人对 .config 文件进行更改并执行“格式化文档”,则上述配置部分将更新为:

<setting name="SomeBackgroundTaskIntervalSeconds"
         serializeAs="String">
    <value>60</value>
</setting>

从 settings.settings 文件生成配置部分时,Visual Studio 会完全忽略这些设置。因此,我们经常会遇到具有数百行“更改”的 Git 差异,这些“更改”只是将新行更改为空格,反之亦然。这当然是一个完全的痛苦,尤其是在尝试解决此类文件中的合并冲突时。

有谁知道是否有任何方法可以让 Visual Studio 生成尊重 Visual Studio 自己关于 XML 格式设置的配置部分?

我们可以在整个团队中更改上面提到的 XML 格式设置,但是为了避免看起来是 VS 的不一致而需要求助于这个似乎是一种耻辱。

标签: .netxmlvisual-studio

解决方案


推荐阅读