2012-03-19 58 views
4

做一些代碼重構後,我的VS2010 VB.Net Web應用程序項目已停止,出現以下錯誤編譯:混合模式組件構建針對X版本,並且不能在運行時的版本,y爲加載,無需額外配置信息

「混合模式程序集是針對運行時版本」v1.1.4322「構建的,無需其他配置信息即可在4.0運行時加載。」

在Visual Studio的錯誤列表的'文件'列中是單詞'SGEN',但是當我雙擊時,文件不存在(「文檔不能被打開,它已被重命名,刪除或移動「)。我收集它與序列化有關,但是當我刪除對序列化庫的引用時,錯誤不會消失(當然,我得到更多錯誤,因爲現在我試圖使用未引用的庫)。

那麼需要的附加配置信息是什麼?我花了幾個小時研究的錯誤,大家都說以下內容添加到app.config文件的配置標籤:

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
</startup> 

不過,我已經添加到了每一個配置文件,我能找到或創造,迄今爲止它沒有幫助。

我懷疑問題的一部分可能是水晶報表,這些DLLs確實是針對dot net的v1.1.4322構建的。

我需要重新編譯我的項目。爲此,我有一些問題:

  1. 我應該爲哪個配置文件添加legacyRuntime配置?這甚至是正確的解決方案嗎?
  2. 任何人都可以幫助神祕的Asp.Net配置對我來說?它實際上是有意義的,還是像看起來那樣荒謬?
  3. 爲什麼Visual Studio會列出引用不存在的文件的錯誤?
  4. 這是什麼混合模式的波隆雷呢?
  5. 爲什麼像這樣奇怪的配置問題似乎間歇性地出現,據我所知我沒有做出任何重大改變?

回答

7

我通過在應用程序的配置中將「生成序列化程序集」從「自動」更改爲「關閉」來編譯項目。整個互聯網關於useLegacyV2RuntimeActivationPolicy的建議似乎是我的情況的一個紅色鯡魚。

+0

此應用程序配置在哪裏找到? – 2012-06-11 17:02:43

+2

可能取決於你正在使用的是什麼版本的Visual Studio,但對我來說(VS2010 Pro)是右鍵單擊項目 - >命中屬性 - >編譯 - >高級編譯選項... - >生成序列化程序集是一個下拉列表。 – pabrams 2012-06-12 17:59:10

+0

你是F *****男人! 「可能取決於你使用的是什麼版本的Visual Studio,但對我來說(VS2010 Pro)是右鍵單擊項目 - >命中屬性 - >編譯 - >高級編譯選項... - >生成序列化程序集是一個下拉列表「。關鍵! – 2015-03-24 19:10:51

相關問題