2013-07-30 72 views
0

我在運行ASP.NET應用程序時遇到以下錯誤。 X是reference.cs中定義的typedDataTableRow(另一個項目中的Web服務的代理,不屬於解決方案的一部分)。 ASPTemp文件夾中只有一個Y.dll文件。我重新啓動Visual Studio,清理解決方案,刪除ASPTemp文件夾,刪除解決方案下的所有已編譯的dll,重新啓動IIS。在調試器中,模塊窗口中有一個Y.dll實例。我無法確定爲什麼我得到這個異常。這兩條路的例外情況完全相同!運行時以某種方式認爲有兩個Y.dll實例。 (Y是我的項目/程序集的名稱)。我正在嘗試使用Fuslogvw.exe,但它沒有顯示最低限度的信息,也沒有任何用處。會發布關於它的另一個問題。我在Windows 7 64bit中使用Visual Studio 2010。System.InvalidCastException [A] X不能轉換爲[B] X

我提到的一點是我有兩個非常相似的類型數據集。一個是從另一個加上新的數據表創建的。我使用合併方法將數據從一個複製到另一個。我在第二個..designer.cs文件中對數據集類名進行了全局重命名,我確信這兩個數據集是唯一的。第一個類名不存在int第二個。我提到這一點,以防兩個數據集可能是這個原因,但我不知道如何。

任何想法如何解決這個問題?

Exception Type: System.InvalidCastException 
Message: [A]X cannot be cast to [B]X. Type A originates from 'Y, Version=123.10.0.32434, 
Culture=neutral, PublicKeyToken=null' in the context 'Default' at location 
'c:\temp\ASPTemp\xx\bf09df88\62e1519a\assembly\dl3\bdf55bf9\f02959af_c88cce01\Y.dll'. 
Type B originates from 'Y, Version=123.10.0.32434, Culture=neutral, PublicKeyToken=null' 
in the context 'Default' at location 'c:\temp\ASPTemp\xx\bf09df88\62e1519a\assembly\dl3\bdf55bf9\f02959af_c88cce01\Y.dll' 
+0

請告訴我Y.dll不是**真的**你的DLL?而且你沒有名爲A和B的類型? – Kevin

+0

不,這些不是真名。爲什麼?這應該不重要。 –

回答

0

我刪除了第二個數據集,並引用作爲一個測試的所有代碼和問題走了。當兩個數據集包含在兩個不同的類中並且沒有編譯錯誤時,我仍然沒有解釋這種行爲。

+0

我刪除了designer.cs文件。使用CodePlex中的xcd2code創建另一個。不知道它是否創建了具有不同結構的類。 –

0

這實在太模糊,無法用給出的信息來解決。這聽起來像你複製/粘貼的東西,並沒有設法正確地重命名一切。

修改生成的代碼時必須非常小心。當在UI或設計器中進行更改時,他們經常更新的不僅僅是designer.cs文件。此外,還可能有需要更新以反映更改的配置文件。

+0

數據集不會修改任何配置文件 –

+0

@Tony我不是故意暗示他們這樣做。我只是提供了一個例子,說明全局替換如何引入不一致的狀態。 – Dan

相關問題