2011-06-02 169 views
5

标题并没有完全描述实际的问题,因为我试图将一个简洁的描述放入一行内容中。如何在不同解决方案之间共享相同的Visual Studio项目?不同的app.config和setttings.settings

我有一个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

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

我在CodePlex上的一个项目: http://wcfsilverlighthelper.codeplex.com/

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

+0

我现在面临很多相同的问题原来的海报,和您的解决方案听起来不错。你介意发布你的App.Config文件的一部分,说明你如何做链接? – estanford 2011-06-16 15:16:05

+0

@estanford,我必须托管在CodePlex上,在一个项目: http://wcfsilverlighthelper.codeplex.com/ 这就是我的意思在这里一个完整的示例和应用。下载源代码,并期待在的applicationSettings文件夹,然后看看怎么在app.config,在的csproj settings.settings文件在项目目录链接,而不是实际。 – 2011-06-17 00:38:03

3

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

+0

由于这是一个好主意来考虑,我也想出了另一个我会发布。 – 2011-06-02 14:19:52

相关问题