繁体   English   中英

如何在多个Visual Studio项目之间共享属性? (特别是C#项目)

[英]How to share properties between multiple Visual Studio projects? (especially C# projects)

手动保持多个Visual Studio项目的属性同步是令人讨厌的。 那么,您如何在多个项目之间共享属性?

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

类似的问题已经被问过,见: 123 但是,根据我的理解,答案是C ++特有的。 我正在寻找C#项目的答案。 不过,如果你保持分离清晰,请不要犹豫,回答其他类型的项目(Visual Basic等),因为除了我之外的其他人可能会感兴趣。

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

此外,您至少可以通过以下方式解决问题的一部分(请注意,虽然我测试了它,但我没有彻底测试它):

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

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

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

我们非常大量地使用.vsprops文件来在我们的本机项目之间定义共享宏。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM