濮阳杆衣贸易有限公司

主頁 > 知識庫 > 解決.net framework 4.0環(huán)境下遇到版本不同編譯不通過的方法詳解

解決.net framework 4.0環(huán)境下遇到版本不同編譯不通過的方法詳解

熱門標(biāo)簽:戶外地圖標(biāo)注軟件手機哪個好用 萊蕪?fù)夂綦婁N機器人價格 五常地圖標(biāo)注 電銷語音自動機器人 智能電話營銷外呼系統(tǒng) 凱立德導(dǎo)航官網(wǎng)地圖標(biāo)注 鄭州400電話辦理 聯(lián)通 長春呼叫中心外呼系統(tǒng)哪家好 地圖標(biāo)注和認(rèn)領(lǐng)

本文內(nèi)容:
1.問題引出
2.問題解決
3.原因分析 

最近部門的開發(fā)環(huán)境都更新到了WIN7+.NET framework4+VS2010上,在體驗新技術(shù)和新環(huán)境帶給我們提高效率的方式方法的同時也帶來了一些兼容性的問題;這幾天項目閑暇時在研究SQLite,在做實驗的時候碰到個問題,代碼編譯通過執(zhí)行時反復(fù)異常中斷,查到后面原來是SQLite.dll是在framework2.0環(huán)境下編譯的而現(xiàn)在的運行環(huán)境是framework4.0,所以就出現(xiàn)了運行異常,如圖:
    

由于以后的開發(fā)過程中,可能會引用一些第三方的組件,有可能是老的framework版本下編譯的,同樣會出現(xiàn)此類的問題,所以在本文中提供一個解決辦法和說明造成此問題的原因。

查閱了相關(guān)資料,stackoverflow.com上建議在config文件中增加配置:

復(fù)制代碼 代碼如下:

startup useLegacyV2RuntimeActivationPolicy="true">
supportedRuntime version="v4.0"/>
/startup>


MSDN上也對此方法進(jìn)行了闡述,參見http://msdn.microsoft.com/en-us/library/bbx34a2h(VS.100).aspx

但是使用此方法編譯后問題仍然沒有解決,但是問題可以明確鎖定為.net runtime環(huán)境的問題了。

復(fù)制代碼 代碼如下:

startup useLegacyV2RuntimeActivationPolicy="true">
supportedRuntime version="v4.0"/>
requiredRuntime version="v4.0.30319" />
/startup>

再次運行,問題解決。這下需要了解是什么原因造成的?
supportedRuntime標(biāo)簽用來 具體說明應(yīng)用程序支持的是哪個.framework運行時的版本;
requiredRuntime標(biāo)簽用來 具體說明應(yīng)用程序只支持1.0版本的公用語言運行時間。如果使用1.1版本或者后面的版本來編譯,應(yīng)用程序必須使用supportedRuntime>元素;
注意:
supportedRuntime>必須通過1.1版本或后面的版本而編譯的應(yīng)用程序來使用。只支持1.0版本的運行時間的應(yīng)用程序必須使用requiredRuntime>。

再次查閱CLR Runtime版本的相關(guān)資料,引用以下CLR運行規(guī)則和各版本間關(guān)系匯總表格,如下:
規(guī)則:
1. CLR4.0及以上版本編譯的應(yīng)用程序總是運行在應(yīng)用程序所被編譯的CLR版本上;
2. CLR4.0以下版本編譯的應(yīng)用程序優(yōu)先運行在被編譯的CLR版本上,如果此版本不存在,則運行最新的小于CLR4.0的版本;
匯總?cè)缦拢?/FONT>

EXE被編譯的CLR版本號

機器上安裝有CLR 1.1?

機器上安裝有CLR 2.0?

機器上安裝有CLR 4.0?

結(jié)果

1.1

無所謂

無所謂

加載CLR 1.1

2.0

無所謂

無所謂

加載CLR 2.0

1.1

無所謂

加載CLR 2.0

1.1

失敗

2.0

無所謂

失敗

至此我們就能很清楚的搞清各個CLR版本之間的聯(lián)系了。

總結(jié):微軟每次版本升級都會造成一些新的問題的出現(xiàn),早年從CLRv1.0到CLRv2.0曾經(jīng)也造成很多的困惑,可能也是由于過大的組織造成不能面面俱到吧,希望在今后的版本升級中能真正做到無縫的版本聯(lián)接。

您可能感興趣的文章:
  • win7和win2008 r2下配置IIS7(ASP.net運行環(huán)境)
  • Win7旗艦版中的IIS配置asp.net的運行環(huán)境配置教程(圖文教程+視頻)
  • Win7中IIS的ASP.NET環(huán)境配置簡潔版
  • win10下ASP.NET Core部署環(huán)境搭建步驟
  • win2008 r2 服務(wù)器環(huán)境配置(FTP/ASP/ASP.Net/PHP)
  • Win 2003中配置ASP.net環(huán)境
  • .NET Core Windows環(huán)境安裝配置教程
  • ASP.NET Core環(huán)境設(shè)置教程(2)
  • Linux下部署.net core環(huán)境的步驟詳解
  • ASP.NET Core環(huán)境變量和啟動設(shè)置的配置教程

標(biāo)簽:紅河 西藏 衢州 湖州 宣城 岳陽 福州 西寧

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《解決.net framework 4.0環(huán)境下遇到版本不同編譯不通過的方法詳解》,本文關(guān)鍵詞  解決,.net,framework,4.0,環(huán)境,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《解決.net framework 4.0環(huán)境下遇到版本不同編譯不通過的方法詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于解決.net framework 4.0環(huán)境下遇到版本不同編譯不通過的方法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    涞水县| 灵宝市| 乌鲁木齐县| 弥渡县| 石家庄市| 玉林市| 万宁市| 安乡县| 揭东县| 永川市| 霍邱县| 穆棱市| 富蕴县| 昭觉县| 太湖县| 阿勒泰市| 沭阳县| 元阳县| 贵南县| 莱阳市| 武山县| 郎溪县| 遵义市| 读书| 乾安县| 建阳市| 泌阳县| 彰化市| 鄂托克旗| 新巴尔虎左旗| 云浮市| 吴江市| 东城区| 景东| 独山县| 钟祥市| 芷江| 普陀区| 武山县| 宜兴市| 六盘水市|