2013-07-02 92 views
0

我在当前项目中遇到了一些麻烦。我有一个包含2个独立项目的解决方案。第一个是我发布的项目,它有一个web.config文件。第二个是数据访问项目,它只包含.cs文件,并且具有一个app.config文件以及一个包含Settings.settings文件的Properties文件夹。共享.Net Web配置文件问题

像这样:

Solution 
    DataProject 
     app.config 
     Settings.settings 
     Code.cs 

    PublishProject 
     Code Files 
     Web.config 

我的问题是,我希望能够解决已发布后修改app.config文件设置,但app.config文件被卷成DataProject。 dll位于PublishProject的bin文件夹中。因此,我无法访问app.config文件以在发布后对其进行编辑。

我试图将app.config文件设置为一个链接文件,该文件仅指向另一个项目中的Web.config文件,但问题在于设置文件未使用正确的值更新app.config文件,除非您在Visual Studio中打开设置文件并允许其重新加载。设置文件中的值是在整个应用程序中使用的值。

现在只有解决方法是更改​​配置并重新发布项目。

回答

0

万一别人运行到这个问题,这里要说的是,我能够用变通方法:

创建于PublishProject一个XML文件,并在app.config将数据转换成单独的XML标签,如下所示:

<configuration>  
    <setting name="debug" serializeAs="String"> 
       <value>False</value> 
    </setting> 
</configuration> 

成为

<Properties> 
    <debug>True</debug> 
</Properties> 

一旦你这样做,你可以调用你的代码下面,而不是USI来自Settings.settings文件的值。

XmlDocument doc = new XmlDocument(); 
String appPath = HttpContext.Current.Server.MapPath("~").ToString() + @"/App_Data/Properties.xml"; 
doc.Load(appPath); 
debug = Convert.ToBoolean(doc.SelectSingleNode("Properties/debug").InnerText.ToString()); 

注意:我把它放在已完成项目的App_Data文件夹中,因为默认情况下该文件夹不能通过浏览器访问。