2012-02-11 84 views
8

我想用華廷運行一些驗收測試,我得到以下錯誤,當我嘗試打開NUnit的GUI測試組件:NUnit的FileNotFoundException異常:System.Configuration

System.IO.FileNotFoundException:未能加載文件或程序集 'System.Configuration,Version = 4.0.0.0,Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'或其依賴項之一。 系統找不到指定的文件。

異常詳細信息:之前我在爲了從App.config中讀取基本URL添加一個參考System.Configuration

System.IO.FileNotFoundException... 

Server stack trace: 
    at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) 
    at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 
    at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) 
    at System.Reflection.Assembly.Load(String assemblyString) 
    at System.UnitySerializationHolder.GetRealObject(StreamingContext context) 
    at System.Runtime.Serialization.ObjectManager.ResolveObjectReference(ObjectHolder holder) 
    at System.Runtime.Serialization.ObjectManager.DoFixups() 
    at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) 
    at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage) 
    at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, IMethodCallMessage methodCallMessage) 
    at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg) 

Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
    at NUnit.Core.TestRunner.Load(TestPackage package) 
    at NUnit.Core.ProxyTestRunner.Load(TestPackage package) 
    at NUnit.Util.ProcessRunner.Load(TestPackage package) 
    at NUnit.Util.TestLoader.LoadTest(String testName) 

一切工作就好了

回答

14

看來,這個問題是App.config文件中各節的順序。

我首先添加了appSettings部分,但是在我將它移開後,所有事情都開始工作了,因爲它應該再次。

這裏的App.config中的內容:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     <sectionGroup name="NUnit"> 
      <section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/> 
     </sectionGroup> 
    </configSections> 

    <NUnit> 
     <TestRunner> 
      <add key="ApartmentState" value="STA"/> 
     </TestRunner> 
    </NUnit> 

    <appSettings> 
     <add key="BaseUrl" value="http://localhost/Test"/> 
    </appSettings> 
</configuration> 
+1

*嘆*謝謝你.. – 2012-06-27 13:59:37

+3

我需要的類型更改爲以下讓它工作:TYPE =「System.Configuration.NameValueSectionHandler,系統, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089「 – rfcdejong 2013-02-21 13:59:05