如何自动将VS2003类转换为部分Designer.cs文件?

我正在将项目从Visual Studio 2003升级到2008,并希望自动生成XXX.Designer.cs文件并更新相应的XXX.cs原始文件。

有自动方式吗?

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

浮动的宏有一个这样做。 我用过它,效果很好。 首先看看Nathan Jones博客 。 如果你没有太多运气,那么从VSCONVERT下载一个源代码的压缩文件(我发布) – PasteBin

原始类将继续工作 – 即使使用Visual Studio设计器也是如此。 VS在Designer类中放置的代码只是为了将设计器“noise”删除到一个单独的文件中,这样您就可以专注于类中的非可视代码。

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

我们遇到了这个问题。

基本上,设计器文件应该只包含一组对象声明(即表单上的对象)和InitializeComponent()调用。 如果你在构造函数上做过任何花哨的工作,那也可能就在那里。

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

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

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

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

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

否则,如果您的项目以前没有.Designer.cs文件,那么为什么现在需要它们呢?

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