9

手动保持多个 Visual Studio 项目的属性同步很烦人。那么,如何在多个项目之间共享属性呢?

编辑:我指的是条件编译符号、警告和错误处理等属性,即您可以在 Project->Properties 选项卡或编辑项目 XML 文件中配置的内容。

之前已经提出过类似的问题,请参阅:123。但是,据我了解,答案是特定于 C++ 的。我正在寻找 C# 项目的答案。尽管如此,如果您保持清晰的分离,请不要犹豫回答其他类型的项目(Visual Basic 等),因为除我之外的其他人可能会感兴趣。

这篇博文提出了一个解决问题的方法,但我更喜欢更简单的方法。

另外,你至少可以通过以下方式解决部分问题(注意,虽然我测试过,但我没有彻底测试过):

使用您要共享的程序集属性创建一个 AssemblyInfo.cs 文件。链接到各个项目中的此现有项目。使用原始(本地)AssemblyInfo.cs 并将项目特定的程序集属性放在那里。不幸的是,覆盖属性似乎不起作用,并且通过 GUI 管理属性现在受到限制。

4

2 回答 2

5

对于这类事情,我更喜欢有一个单独的类库项目,其中一个(或多个)静态类存储(静态)属性。然后从需要同步这些属性的每个项目中添加对该项目的引用,所有这些项目将具有相同的值,您只需在一个地方进行更改。

例如,假设我在 Web 和桌面形式中拥有相同的应用程序。诸如连接字符串之类的东西对于两者都必须相同。所以我将创建三个项目:
MyProject.Web(Web 应用程序)
MyProject.Desktop(Windows 窗体应用程序)
MyProject.Common(类库)
然后我在 Common 中添加一个名为 Properties 的新静态类,其中包含一个名为 ConnectionString 的静态属性,它返回连接细绳。
然后,我在 Web 和桌面中添加对 Common 的引用,当我想从其中任何一个访问连接字符串时,我使用 Common.Properties.ConnectionString。

于 2010-09-11T12:58:15.257 回答
1

我们大量使用 .vsprops 文件在我们的原生项目之间定义共享宏。

有人提出与您完全相同的问题,提出了将“空白”可视 C++ 项目添加到解决方案的想法,以便可以导入 vsprops 文件,并且这些属性通常对解决方案的其余部分可见。如果这听起来不太严重,我可以找出它是如何工作的。

于 2010-09-11T15:41:36.483 回答