2011-04-07 119 views
25

我想移民我國從NET 3.5的網站4,我遇到了一個很奇怪的問題「是不是被語言支持」。C#錯誤遷移後.NET4

在3.5工作得很好

代碼不會再一次,我的目標.NET4,給我的錯誤

「XXX不被支持的語言」。

TimeZoneInfo tzi = !calendarItem.UseUserTimeZone ? user.Settings.TimeZoneInfo : l.TimeZoneItem.Info; 

在該行上的碼的錯誤顯示的「.TimeZoneInfo」和「.Info」既類型的「System.TimeZoneInfo」。

定義的

user.Settings.TimeZoneInfo屬性是:

定義的 l.TimeZoneItem.Info
public TimeZoneInfo TimeZoneInfo 
{ 
    get { return World.TimeZones[Convert.ToInt32(this[Setting.TimeZoneInfo])].Info; } 
    set { this[Setting.TimeZoneInfo] = value.ToTimeZoneItem().Id.ToString(); } 
} 

屬性是:

public TimeZoneInfo Info 
{ 
    get { return info; } 
} 

不是真的知道什麼是怎麼回事。請幫助那個人。

+27

我有這種情況發生的時候我沒有清除我的bin目錄,並在一定大會將不參考失蹤由於某種原因得到重建...手動從bin目錄中刪除它,但做到了。 – 2011-04-07 02:04:09

+2

同意約翰......清理你的構建。確保垃圾箱中沒有東西,然後重新進行重建。多數民衆贊成我上次如何解決它。 – sajoshi 2011-04-07 02:26:57

+0

這有助於將問題縮小到我們正在使用的第三方裝配。我試圖找到.Net 4兼容版本。我會回覆w /我的發現。 – Lancelot 2011-04-07 15:58:01

回答

1

這可能有助於以不同的方式調用屬性字段。因爲TimeZoneInfo也是System命名空間中的一個類。

+3

明確允許屬性與它們「包含」的類型具有相同的名稱。 – 2011-04-07 08:57:00

+0

他並不是說這個問題與屬性和類型名稱之間的不確定性有關,而是因爲TimeInfoZone也位於(相當全局的)'System'命名空間中。 – ReFocus 2011-05-04 12:01:42

19

這也可能是組裝的不一致性問題。 當我想要使用與另一個項目創建循環引用的程序集時,我遇到了此問題。一旦我修復了這個循環引用問題,錯誤就不再出現。

5

這在較低的庫使用不同的versionof .NET框架也會發生。有一個類似的問題,當我更新下層庫到3.5框架和實際庫到3.5框架問題消失了。

1

類同喬納森·佩裏的回答,在我來說,我有一個老組裝,而不是編譯一個參考。我刪除了引用,並再次指向正確的dll。

0

與此處的其他類似,如果引用的程序集針對的是'任何CPU',而當前程序集針對'任何CPU'將導致該問題(至少在64位機器上)。

1

一些其他職位的相似,在我來說,我完全缺少的程序集的引用。它不是直接從我正在使用的項目中訪問,而是在另一個我參考的鏈接項目中訪問。

0

也會發生這種情況時,組件是由一些其他組件項目