将配置添加到库项目C#

时间:2012-11-04 10:45:59

标签: nhibernate nunit library-project iesi-collections

我在解决方案中有一个Console项目和一个类库项目。库prject是我的数据访问层(DAL),我也在我的DAL中使用NHibernate和.NET Persistenc API。

由于NHibernate需要Iesi.Collections.dll,因此在加载此程序集(存在于我的Console项目的bin文件夹中)时,它给了我以下错误:

An attempt was made to load an assembly from a network location which would have caused the assembly to be sandboxed in previous versions of the .NET Framework. This release of the .NET Framework does not enable CAS policy by default, so this load may be dangerous. If this load is not intended to sandbox the assembly, please enable the loadFromRemoteSources switch. See http://go.microsoft.com/fwlink/?LinkId=155569 for more information.

但后来我在app.config文件中添加了以下配置,然后成功加载了Iesi.Collections.dll。

  <runtime>
        <loadFromRemoteSources enabled="true" />
    </runtime>

现在我已经设置了NUnit测试框架来测试我的DAL,为此我创建了一个新的类库项目。现在问题是我在加载Iesi.Collections.dll时再次遇到上述错误。现在我需要将loadFromRemoteSources配置添加到我的测试项目中,以便通过网络加载程序集。但我的测试项目是一个库项目,所以如何在配置文件的配置部分下面的行(因为类库项目没有任何配置文件)。

 <runtime>
        <loadFromRemoteSources enabled="true" />
   </runtime>

更新:我已将以下app.config明确添加到我的测试项目(类库项目)

<?xml version="1.0"?>
<configuration>    
    <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
    </startup>
    <appSettings>
        <add key="serviceUrl" value="test value" />
    </appSettings>
    <runtime>
        <loadFromRemoteSources enabled="true" />
    </runtime>
</configuration>

我将使用以下代码行访问我的测试项目和DAL中的关键“serviceUrl”值:

 string strVal = System.Configuration.ConfigurationSettings.AppSettings["serviceUrl"];

但我仍然无法加载Iesi.Collections.dll,并且收到与以前相同的错误。

1 个答案:

答案 0 :(得分:0)

文件是否真的从网络加载,或者您是否需要规避不同的烦人安全仪式:http://www.hanselman.com/blog/RemovingSecurityFromDownloadedPowerShellScriptsWithAlternativeDataStreams.aspx