C# VS 2008升级正在更改我的数据集设计器命名空间

C# VS 2008升级正在更改我的数据集设计器命名空间,c#,visual-studio-2008,visual-studio-2005,C#,Visual Studio 2008,Visual Studio 2005,我一直在将我们的解决方案从VS2005升级到VS2008;仍以.NET2.0框架为目标。转换向导很简单,我从未遇到过转换失败的情况。到目前为止,我唯一的不满是升级后无法立即编译,因为VS更改了我的一些名称空间,导致命名冲突 例如,我有一个DAL项目(我们称之为MyNameSpace),它有一个名为“dsClient”的数据集的“Clients”文件夹 以下是数据集设计器类在转换之前的外观: namespace MyNameSpace { public partial class dsCl

我一直在将我们的解决方案从VS2005升级到VS2008;仍以.NET2.0框架为目标。转换向导很简单,我从未遇到过转换失败的情况。到目前为止,我唯一的不满是升级后无法立即编译,因为VS更改了我的一些名称空间,导致命名冲突

例如,我有一个DAL项目(我们称之为MyNameSpace),它有一个名为“dsClient”的数据集的“Clients”文件夹

以下是数据集设计器类在转换之前的外观:

namespace MyNameSpace
{
    public partial class dsClient : global::System.Data.DataSet
    {
    }
}
在转换过程中,VS正在更改我的designer类,并将文件夹名称添加到命名空间的末尾,因此现在看起来如下所示:

namespace MyNameSpace.Clients
{
    public partial class dsClient : global::System.Data.DataSet
    {
    }
}
问题是该文件夹中有另一个同名的类文件:

namespace MyNameSpace
{
    public class Clients
    {
    }
}
这会导致命名冲突,我必须手动修复VS所做的更改。在某些情况下,VS会将名称空间名称更改为数据集的名称,而不是文件夹的名称


这是转换向导中的配置吗?我希望向导只更新项目文件,而不使用代码。

我相信名称空间来自xsd文件的位置。我认为,一直追溯到2003年,您将xsd放入的文件夹使其进入了名称空间

在您的情况下,如果您将xsd移动到DAL项目的根目录,那么您的代码应该得到更正。我意识到这可能并不理想,但我认为数据集生成器就是这样工作的


唯一让我感到惊讶的是,名称空间在2005年的解决方案中没有包含“客户机”部分。它感觉像是在根目录中生成的,但随后在不重新生成的情况下移动到子文件夹。

您可以通过提供生成代码的命名空间来解决此问题:


打开xsd文件的属性,并将代码的名称空间放在“自定义工具名称空间”旁边。然后右键单击xsd文件并选择“运行自定义工具”,就完成了。

我不知道“自定义工具名称空间”文件属性!谢谢,这正是我想要的!:D

“唯一让我惊讶的是,名称空间在2005年的解决方案中没有包含“客户机”部分”-现在我想起来了,在2005年添加新数据集后,我们确实不得不手动更改自动生成的类文件。听起来这是数据集生成器的一个“功能”。对。如果希望名称空间与项目中的位置不同,Albic的答案将为您提供更持久的解决方案。