2010-06-03 53 views
9

我們有一個.Net 2.0 web應用程序,並將解決方案和項目轉換爲Visual Studio 2010(它們是Visual Studio 2005)。我們正在離開項目,目標是Framework 2.0。該應用程序包含Ajax擴展。我們進行了轉換,並可以使用Visual Studio在服務器上成功構建項目。然而,當我們試圖通過MSBUILD 4.0來構建項目,我們得到當使用AJAX控件在頁面上的錯誤,如下列:MSBUILD 4.0在AJAX擴展上失敗

C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets(1360,9): 警告MSB3267:主要參考 「System.Web.Extensions程序, 版本= 1.0.61025.0文化=中性, 公鑰= 31bf3856ad364e35, ProcessorArchitecture用於= MSIL」,這是 框架程序集,不能被 解決在當前的目標爲 框架。 「.NETFramework,Version = v2.0」。爲了 解決此問題,請刪除 參考「System.Web.Extensions程序, 版本= 1.0.61025.0,文化=中立, 公鑰= 31bf3856ad364e35, ProcessorArchitecture用於= MSIL」或 重新定位你的應用程序到 框架的版本,包含 「System.Web.Extensions, Version = 1.0.61025.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL」。 [C:\的Inetpub \ wwwroot的\ gmrcwebsite \ GMRCWebsite.vbproj]

C:\ Windows \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets(1360,9): 警告MSB3268:該主參考 「System.Web.Extensions.Design, 版本= 1.0.61025.0文化=中性, 公鑰= 31bf3856ad364e35, ProcessorArchitecture用於= MSIL」無法 得到解決,因爲它具有在框架組件 間接 依賴性「System.Web.Extensions, Version = 1.0.61025.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35」其中 可以在目前的 目標框架中沒有得到解決。 「.NETFramework,Version = v2.0」。爲了 解決此問題,請刪除 參考 「System.Web.Extensions.Design, 版本= 1.0.61025.0,文化=中立, 公鑰= 31bf3856ad364e35, ProcessorArchitecture用於= MSIL」 或 重新定位你的應用程序到 框架版本,其中包含 「System.Web.Extensions, Version = 1.0.61025.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35」。 [C:\的Inetpub \ wwwroot的\ gmrcwebsite \ GMRCWebsite.vbproj]

C:\ Windows \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets(1360,9): 警告MSB3268:該主參考 「AjaxControlToolkit, 版本= 1.0.10618.0文化=中性, 公鑰= 28f01b0e84b6d53e, ProcessorArchitecture用於= MSIL」 無法 得到解決,因爲它具有在框架組件上的間接 依賴 「System.Web.Extensions程序, Version = 1.0.61025。0,文化=中立, 公鑰= 31bf3856ad364e35" 這 無法在當前 有針對性的框架解決。 「.NETFramework,版本= 2.0" 版。爲了 解決此問題,請刪除 參考」 AjaxControlToolkit, 版本= 1.0.10618.0,文化=中立, 公鑰= 28f01b0e84b6d53e, ProcessorArchitecture用於= MSIL 「或 重新定位你的應用程序包含一個 框架 版」 System.Web.Extensions程序, 版本= 1.0.61025.0,文化=中性, PublicKeyToken = 31bf3856ad364e35「。 [C:\ Inetpub \ wwwroot \ gmrcwebsite \ GMRC Website.vbproj]

C:\ Windows \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets(1360,9): 警告MSB3267:主要參考 「System.Web.Extensions.Design , 版本= 1.0.61025.0,文化=中立, 公鑰= 31bf3856ad364e35, ProcessorArchitecture用於= MSIL」,這是 框架組件,不能 解決了當前目標 框架。 「.NETFramework,Version = v2.0」。爲了 解決此問題,請刪除 參考 「System.Web.Extensions.Design, 版本= 1.0.61025.0,文化=中立, 公鑰= 31bf3856ad364e35, ProcessorArchitecture用於= MSIL」 或 重新定位你的應用程序到 框架版本包含 「System.Web.Extensions.Design, Version = 1.0.61025.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL」。 [C:\的Inetpub \ wwwroot的\ gmrcwebsite \ GMRCWebsite.vbproj]

C:\ Windows \ Microsoft.NET \框架\ v4.0.30319 \ Microsoft.Common.targets(1360,9): 警告MSB3268:該主參考 「AjaxControlToolkit, 版本= 1.0.10618.0文化=中性, 公鑰= 28f01b0e84b6d53e, ProcessorArchitecture用於= MSIL」 無法 得到解決,因爲它具有在框架組件上的間接 依賴 「System.Web.Extensions程序.Design, Version = 1.0.61025.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35「其中 不能在目前的 目標框架中解決。 「.NETFramework,Version = v2.0」。爲了 解決此問題,請刪除 參考「AjaxControlToolkit, 版本= 1.0.10618.0,文化=中立, 公鑰= 28f01b0e84b6d53e, ProcessorArchitecture用於= MSIL」或 重新定位你的應用程序包含 「系統 框架版本.Web.Extensions.Design, Version = 1.0.61025.0,Culture = neutral, PublicKeyToken = 31bf3856ad364e35「。 [C:\的Inetpub \ wwwroot的\ gmrcwebsite \ GMRCWebsite.vbproj]

...

錯誤BC30451: 'ScriptManager的' 不是 宣佈。由於 達到其保護級別,因此可能無法訪問。錯誤 BC30002:類型 'System.Web.UI。ScriptManager'不是 定義的。錯誤BC30002:類型 'System.Web.UI.UpdatePanel'不是 定義的。錯誤BC30002:類型 'System.Web.UI.UpdateProgress'不是 定義的。

這個東西工作得很好,並通過Visual Studio構建和工作正常。我們需要做什麼來解決這些錯誤?

+0

有這個相同的問題,並且由於相同的問題,我們的Web服務將不會在稍後的時間編譯。 – Digicoder 2010-06-22 15:17:08

回答

17

我有同樣的問題我自己配置​​的TFS構建服務2008年使用的MSBuild 4.0後。一切工作在轉換項目之前,然後轉換爲2010格式和切換到MSBuild 4突然找不到1.0.61025.0 AJAX庫。

原來有一個註冊表鍵缺少,指向MS Ajax擴展的安裝位置。

在我開發框應位於(64位OS)的關鍵

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ASP.NET AJAX Extensions 

代替放置在HKEY_CURRENT_USER。 (32位操作系統:刪除Wow6432Node部分)

構建服務器密鑰完全丟失(沒有本地存在的用戶配置文件在其註冊表配置單元中)。

此鍵的默認值應指向MS AJAX擴展的安裝目錄,這在我的情況是

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025 

重新創建密鑰的生成服務器上之後,我們的解決方案的MSBuild 4下成功生成。

到目前爲止,它仍然是一個謎,爲什麼它成功建立(MSBuild 3.5下)。也許程序集搜索算法稍有改變,現在更具限制性。

希望有所幫助。

+0

+1:這對我有用 - 不知道爲什麼這個工作或沒有工作之前 – 2010-11-17 10:13:47

+0

真棒 - 作品一種享受,正如克里斯所說的那樣,爲什麼它在以前工作! – 2010-12-09 17:17:28

+0

男人,你搖滾! – Nissim 2011-11-10 15:16:57