2012-12-20 24 views
1

好的,這既是一個問題,也是一個解決方案。我在部署一個解決方案時遇到問題,它非常簡單地使用linq和EF來查詢幾個DB2表並將結果顯示到datagridview。它在開發機器上運行良好,但在其他兩臺機器上嘗試過,我會得到「錯誤40:類型整數不符合限定的名稱空間或別名。」錯誤40:類型整數不符合名稱空間或別名

經過兩天的嘗試各種解決方案,我決定嘗試調試其他機器之一。

開發機是Windows XP中使用Visual Studio 2010 部署機器在Windows 7 VS 2010

好吧,我立刻注意到,在部署機器上,VS會給我一個錯誤列表(整數合格等),這是沒有顯示在我的開發機器上。接下來我注意到的是,當我在解決方案中雙擊.edmx文件時,它以xml打開,而不是顯示我正在使用的表格。

在這個xml中,類型爲「integer」的每個屬性/表列都有下劃線。那麼,這是沒有道理的。這個VS2010能否識別其他VS2010自動生成的數據類型?只是出於絕望,我將「Type ='integer'」的每個實例都改爲「Type ='int'」它在所有3臺機器上調試並運行,如魅力。

所以,我的問題是: 1)這是一個存在於兩個開發環境(XP與W7)之間的bug還是我的開發環境設置不正確? 2)在我的XP機器上,如何在xml視圖中編輯我的.edmx文件?是否可以從VS內,或者我必須使用文本編輯器?

回答

0

是否有你的EDMX的包含文件,它定義了你的開發機器上的「整數」類型(或框架版本的差異)?它在你切換到int時起作用,因爲它是一個基本類型,不需要定義。我只是先完成代碼,所以這對我來說不是一種優勢,但我認爲你的錯誤信息給了你一個很好的提示。在其他兩種環境中,edmx(或包含文件)中沒有對象整數的定義。在你的開發機,我認爲這必須是存在的:

  1. 整數對象在EDMX的定義某處/ include文件
  2. 整數的別名某處詮釋這些相同的文件
  3. 不同的可以識別開箱即用的整數的EF .NET版本?
+0

我的.edmx文件是完全自動生成的。整個項目非常簡單。一個窗體,一個.edmx,一個program.cs。沒有不尋常的或自定義的包含或dll。唯一不標準的參考是DB2(IBM.Data.DB2)。 –

+0

我剛剛檢查了其中一個部署機器。它運行.Net Framework 4.0(與開發機器相同),但部署機器是64位。發展是32.這可能是問題嗎? –

相關問題