2012-11-29 30 views
4

當我嘗試在Visual Studio 2012中調試我的應用程序時,我收到TypeInitializationException,但我能夠在Visual Studio 2010中正常運行應用程序,而且沒有錯誤。在VS2012中獲取TypeInitializationException但不是2010

我最近移動了一堆東西(包括我的項目和幾個參考資料),以便將其轉換爲版本控制系統。我必須重新鏈接幾個項目,以便在不同的系統上籤出時,所有內容都能正確鏈接。

我們的開發環境是混合的(VS2010 & VS2012)。用完VS2010沒有產生任何錯誤。但是當我在VS2012中運行調試時,我收到TypeInitializationException異常。

原始目錄中的項目(在爲版本控制目的而移動之前駐留的目錄)在VS2010和VS2012中仍可正常運行。

有一個標誌或一個參數或東西有點搞砸了,但我不知道在哪裏。有沒有人有什麼想法,我可以做些什麼來讓VS2012工作呢?

(請讓我知道什麼,如果有的話,代碼或配置信息,包括在這裏)

的InnerException:爲 'System.Windows.Navigation.BaseUriHelper'

的類型初始值扔一個例外。

(第二)的InnerException:

關於 'MS.Internal.TraceDependencyProperty' 的類型初始引發了異常。

+1

內部例外說什麼? –

+0

使用InnerExpcetion更新的問題。 –

+2

還有另一個內部例外。如果你沿着你的異常的「InnerException」走到第一個不是「The type initializer..threw an exception」的地方,它是什麼? – vcsjones

回答

10

對原始問題的評論引發了進一步的搜索,最終找到了解決方案。

搜索「System.Windows.Navigation.BaseUriHelper」的類型初始值設定項引發異常。我發現下面的StackOverflow問題:WPF Application fails on startup with TypeInitializationException

與此問題類似,我已將<startup> </startup>塊添加到我的「app.config」文件中。當這個標籤塊置於帶來的變化:

導致錯誤在VS2012:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" /> 
    </startup> 
    <configSections> 
     ... 
    </configSections> 
    <applicationSettings> 
     ... 
    </applicationSettings> 
</configuration> 

一切正常:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
     ... 
    </configSections> 
    <applicationSettings> 
     ... 
    </applicationSettings> 
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" /> 
    </startup> 
</configuration> 

移動標籤塊底部做了招!

+1

OMG,謝謝你提供的信息微軟 - 這是我一生4個小時,我永遠不會回來。 – JBrooks

+0

VS2015也出現這種情況。完美工作。 – silencedmessage

+0

在VS2013中遇到同樣的問題... xml節點的順序很重要---它是Visual Studio的錯誤嗎? –

相關問題