我一直在将我们的解决方案从VS 2005升级到VS 2008; 仍然以.net 2.0框架为目标.转换向导很简单,我从来没有转换失败.到目前为止我唯一的优点是我无法在升级后立即编译,因为VS已经改变了我的一些命名空间导致命名冲突.
例如,我有一个DAL项目(我们称之为MyNameSpace),它有一个"Clients"文件夹,其中包含一个名为"dsClient"的数据集.
以下是转换前数据集设计器类的外观:
namespace MyNameSpace { public partial class dsClient : global::System.Data.DataSet { } }
在转换过程中,VS正在更改我的设计器类并将文件夹名称添加到命名空间的末尾,所以现在它看起来像这样:
namespace MyNameSpace.Clients { public partial class dsClient : global::System.Data.DataSet { } }
这个问题是我在该文件夹中有另一个具有相同名称的类文件:
namespace MyNameSpace { public class Clients { } }
这会导致命名冲突,我必须手动修复VS所做的更改.在某些情况下,VS会将命名空间名称更改为数据集的名称,而不是文件夹的名称.
这是转换向导中的配置吗?我想让向导只更新项目文件并保留代码.
您可以通过提供应在以下位置生成代码的命名空间来解决此问题:
打开xsd文件的属性,并将代码的名称空间放在"自定义工具命名空间"旁边.然后在xsd文件上单击右键并选择"运行自定义工具",您就完成了.