如何在不同的解决方案之间共享相同的Visual Studio项目?不同的app.config和settings.settings

时间:2011-06-02 12:08:13

标签: c# visual-studio-2010 settings t4

标题并没有完全描述实际的问题,因为我试图将简洁的描述融入一个单行。

我有一个C#项目,我想在两个不同的解决方案(.sln)之间共享。该项目是一个使用Main方法的应用程序。它需要使用settings.settings和app.config。这两个解决方案中的每一个都需要引用相同的C#项目,但对于每个解决方案,app.config和settings.settings都需要特定于其解决方案。因此,如果项目C在解决方案A和B之间共享,则A包括C,其中C具有特定于A的app.config,并且B包括相同的C项目,但是C具有特定于C的app.config。有没有办法做这个?我试图避免将同一个项目(即C)复制到两个不同的位置,因为如果我在一个解决方案中更新该项目,那么我必须在另一个解决方案中进行相同的更改。

由于

2 个答案:

答案 0 :(得分:3)

也许你可以使用ConfigurationManager中的Open...()方法之一来实现这一目标。否则,以下hack可以工作(除了你需要复制整个App.config文件):在A中创建一个最小控制台应用程序D1,在B中创建D2,并从此处调用C的main()方法,并使用D1和D2作为启动项目。现在,将使用D1和D2的App.config代替C的App.config。

答案 1 :(得分:2)

我想要分享的项目实际上是在两个不同的源控制位置之间共享的。我想在SVN服务器解决方案和TFS服务器解决方案之间共享相同的项目(即C)。我提出的一个解决方案(对于多个共享项目)也是将app.config链接到位于共享项目目录上方的目录/分支中。因此,不是使用位于项目C目录中的app.config,而是可以有2个不同的工作区,而在项目C的目录上面有一个名为ApplicationSettings的文件夹,其中包含app.config文件。对于每个不同的解决方案,每个工作区都可以维护自己的ApplicatonSettings文件夹,但可以从源代码管理中维护共享项目的完全相同的副本。

我在codeplex有一个项目: http://wcfsilverlighthelper.codeplex.com/

这是我的意思的一个实例。查看ApplicationSettings文件夹,并注意如何在解决方案的T4项目中使用app.config文件。