2011-11-12 37 views
4

使用ScriptSharp創建RIA應用程序。 除了一些古怪之外,還不錯。單元測試ScriptSharp項目中的c#代碼

但是使用Firebug找到並解決問題並不是很方便。

由於scriptsharp也提供了一個DLL,我希望能夠使用單獨的測試項目使用Nunit來測試我的代碼的一些部分。

出現的問題是生成的dll引用了mscorlib 0.7,導致與測試項目中的mscorlib 4發生衝突。

一個簡單的解決方案是創建第二個純C#項目並複製代碼文件。但保持2個項目具有相同的代碼基...

好奇,如果有另一種方式來做到這一點。任何人?

編輯: 由Christian Dalager提出的解決方案的工作。

小問題是ScriptSharp在mscorlib中重新定義了System.Diagnostics。沒有更多的Debug.Assert/Writeline。但現在幾乎不再需要它了。

回答

3

您可以嘗試使用assembly binding redirects

你會把這樣的事情在你testproject在app.config。 沒有測試過這個特定的配置,所以你需要調整它。

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v1.0.3705"> 
    <dependentAssembly> 
     <assemblyIdentity name="mscorlib" publicKeyToken="b77a5c561934e089" culture="neutral"/> 
     <bindingRedirect oldVersion="0.7.0.0" newVersion="4.0.0.0"/> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 
+0

聽起來不錯,我現在就試試吧 – lboshuizen

+0

這似乎是個訣竅! Resharper沒有意識到這一點,並不斷抱怨,但這是一個小問題。還有一種方法可以以同樣的方式重定向命名空間嗎? – lboshuizen

+0

我認爲你需要用自己的方式編碼。你不能告訴resharper忽略那個嗎? –