c# - 如何在多个 Visual Studio 项目之间共享属性? (尤其是 C# 项目)

标签 c# visual-studio properties projects-and-solutions assembly-attributes

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

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

之前问过类似的问题,见:1 , 23 .但是,据我所知,答案是特定于 C++ 的。我正在寻找 C# 项目的答案。不过,如果您明确区分,请不要犹豫回答其他类型的项目(Visual Basic 等),因为除了我之外还有其他人可能会感兴趣。

This blog post提出了问题的解决方案,但我更喜欢更简单的方法。

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

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

最佳答案

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

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

关于c# - 如何在多个 Visual Studio 项目之间共享属性? (尤其是 C# 项目),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3691018/

相关文章:

c# - 神经网络随机种子影响结果

c# - 是否可以在运行时在不同的 Winform 项目上使用不同的配置文件?

python - 通过字符串设置属性

spring - 在 Spring 中将默认属性值指定为 NULL

c# - 无法覆盖 WPF 中 app.xaml 的按钮样式

c# - 记录(通过 Serilog)到 ElasticSearch 不起作用

c# - Entity Framework - "An error occurred while updating the entries. See the inner exception for details"

visual-studio-2010 - Visual Studio 2010 患有精神 split 症

asp.net - Entity Framework 隐藏n到n表

delphi - 在终结中使用私有(private)方法/var