2009-04-17 53 views
9

我正在将项目从Visual Studio 2003升级到2008,并希望自动生成XXX.Designer.cs文件并更新相应的XXX.cs原始文件。如何自动将VS2003类转换为部分Designer.cs文件?

任何自动的方式来做到这一点?

UPDATE:我指的是WinForms。当然,我知道旧风格的作品,但我正在寻找一种不用手工去新风格的方式。

+0

下载宏源(我发布)的zip文件我看不到你说的这个是ASP.NET项目还是Windows Forms项目。请说明。 – 2009-04-18 00:30:53

+2

更多的答案在http://stackoverflow.com/questions/669540/split-old-net-code-into-designer-partial-class – reinierpost 2009-09-23 07:48:25

回答

0

我不确定我是否理解,但我会猜测。

这是VS2003中的ASP.NET项目吗?它有.Designer.cs文件吗?您是否已经完成升级,但是您发现现在没有.Designer.cs文件?

如果是这样 - 您可能会无意中将您的Web应用程序项目更改为网站“项目”。这种“项目”是在VS2005中引入的,所以你现在还没有看到它。这些不是真正的项目(没有.csproj文件),而且它们还有很多其他的区别。

否则,如果您的项目没有使用.Designer.cs文件,那么您为什么要现在呢?

一般来说,创建设计器文件的方法是在设计器中打开文件,稍等片刻让设计人员完成它正在做的事情(更新屏幕等);然后保存该文件。您可能必须“触摸”原始设计才能让设计师重新评估。

+2

VS2003没有.designer.cs文件,因为.net 1.1没有支持部分类。所以它只是把隐藏在代码隐藏区域内的控制声明。 FerranB正在寻求一种自动化的方式将这些声明转移到设计器文件中。 – 2009-04-18 00:08:26

1

即使使用Visual Studio设计器,原始类也将继续工作。 VS放在Designer类中的代码只是为了将设计器的“噪声”移除到一个单独的文件中,以便您可以专注于类中的非可视代码。

一旦您使用向导将项目迁移到VS2008,您可以在VS中打开您的窗体并继续编辑它们,就像以前一样。您创建的任何新表单都将获得Designer支持程序文件。

1

我们有这个问题。

基本上,设计器文件应该只包含一组对象声明(即窗体上的对象)和InitializeComponent()调用。如果你在你的构造函数上做过任何可能存在的奇特工作。

只需创建一个名为MyForm.Designer.cs的文件并将其添加到项目中即可。 VS2008会自动将它放在MyForm.cs的下面。从那里,如果您创建了部分类标题和名称空间,然后将所有声明和Initializecomponent调用复制到设计器文件中,那么它将起作用。

但是,因为如果你不得不,人们会编辑initializecomponent并编辑默认的构造函数,VS2005和2008无法自动升级这些文件,因为可能会发生各种奇怪的事情。我想从项目角度来看,你认为你的工作代码将从分离中获得什么好处?