2009-02-06 244 views
2

我一直在將我們的解決方案從VS 2005升級到VS 2008;仍然瞄準.net 2.0框架。轉換向導很簡單,我從來沒有轉換失敗。我迄今爲止唯一的牛肉是升級後無法立即編譯,因爲VS已經更改了一些命名空間,導致了命名衝突。VS 2008升級改變了我的數據集設計器命名空間

例如,我有一個名爲「dsClient」的數據集有一個「Clients」文件夾的DAL項目(稱爲MyNameSpace)。

下面是數據集設計類的樣子轉換前:

namespace MyNameSpace 
{ 
    public partial class dsClient : global::System.Data.DataSet 
    { 
    } 
} 

在轉換過程中,VS正在改變我的設計器類,因此現在它看起來像添加文件夾名稱命名空間的結尾這樣的:

namespace MyNameSpace.Clients 
{ 
    public partial class dsClient : global::System.Data.DataSet 
    { 
    } 
} 

這樣做的問題是,我有一個文件夾中的其他類文件具有相同的名稱:

​​

這會導致命名衝突,我必須手動修復VS所做的更改。在某些情況下,VS將名稱空間名稱更改爲數據集的名稱,而不是文件夾的名稱。

這是轉換向導中的配置嗎?我想讓該向導只更新項目文件並保留代碼。

回答

7

可以通過提供的代碼應在生成命名空間解決此問題:

打開XSD文件的屬性。並且把命名空間的代碼旁邊的「自定義工具命名空間」。然後在您的xsd文件上單擊右鍵並選擇「運行自定義工具」即可完成。

2

我相信命名空間來自xsd文件的位置。我認爲回到2003年,您將xsd放入命名空間的文件夾中。

在你的情況下,如果你把xsd移到DAL項目的根目錄下,你的代碼應該被修正。我意識到這可能不是理想的,但我認爲這就是DataSet生成器的工作原理。

唯一讓我感到意外的是名稱空間不包含2005解決方案中的「客戶端」部分。感覺就像它是在根中生成的,但隨後移動到子文件夾而不重新生成。

+0

「唯一讓我感到意外的是名稱空間不包括2005解決方案中的」客戶端「部分」 - 現在我想到了,2005年我們必須手動更改自動生成的類添加新數據集後的文件。聽起來像這是數據集生成器的「特徵」。 – 2009-02-06 16:38:22

0

我不知道「自定義工具名稱空間」文件屬性!謝謝,這正是我一直在尋找的! :D