2009-02-06 58 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