2009-07-28 119 views
1

在工作中,我們在DataAccess圖層的某些項目中使用了類型化數據集。有時我們使用分部類功能對它們進行擴展:在數據集上使用View代碼創建帶有部分類聲明的DataSetName.cs,您可以在其中添加代碼。在這個文件中我們還添加了TableAdapter的部分類。Visual Studio 2008數據集生成問題(命名空間問題)

最近我們遷移的Visual Studio 2008中,從2005年VS數據集生成的行爲似乎是在不同的VS 2008它可以除去在cs文件TableAdapter的命名空間的一部分:

例子:

原始代碼:


namespace ClassLibrary1.Dataset.DataSet1TableAdapters 
{ 
    public partial class CategoriesTableAdapter 
    { 
    } 
} 

遷移後在VS 2008:


namespace ClassLibrary1.DataSet1TableAdapters 
{ 
    public partial class CategoriesTableAdapter 
    { 
    } 
} 

命名空間已更改!它已被項目的根名稱空間所取代。

繁殖步驟:

  1. 創建一個類庫項目。
  2. 添加一個名爲Dataset的文件夾或任何項目。
  3. 在文件夾(DataSet1)內添加一個數據集。
  4. 在數據集設計器中刪除表格(我使用了Northwind的表格)。
  5. 右鍵單擊解決方案資源管理器中的數據集,然後選擇查看代碼。它將創建一個DataSet1.cs文件,其中包含數據集的部分類。
  6. 從DataSet1.Designer.cs複製表適配器的名稱空間和類,並將其粘貼到DataSet1.cs中。
  7. 在數據集上運行自定義工具,它工作正常!
  8. 關閉解決方案
  9. 再次打開該解決方案
  10. 數據集上
  11. 運行自定義工具,修改爲TableAdapter的命名空間,非常討厭:(

我的機器: 的Windows Server 2003 R2標準版SP2 Visual Studio 2008 Pro(9.0.21022.8 RTM) 也在一個運行XP的同事的計算機上測試過。

任何人都已經遇到相同的奇怪行爲嗎? 我做錯了什麼? 在Visual Studio 2008中是否有新的配置來使它像VS 2005中一樣工作?

+0

您是否嘗試設置自定義工具的名稱空間?警告:https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=313984&wa=wsignin1.0 – 2009-07-28 13:10:01

+0

是的,我試過了,不幸的是沒有改變任何東西。感謝您關於MS Connect的鏈接,但我不知道它是否相關。這不是VS 2008中的新功能,它在VS 2005上運行良好:( – 2009-07-28 16:39:31

回答

0

Visual Studio 2008 SP1修復了此問題。

1

命名空間也是類名引起混淆。微軟顯然決定在這種情況下修復一個名稱空間代的bug。我會建議修復你的命名空間,而不是試圖找到一些解決方法,以舊的方式。