C# 将csproj文件从winform转换为wpf

C# 将csproj文件从winform转换为wpf,c#,.net,wpf,winforms,C#,.net,Wpf,Winforms,我有一个Winform应用程序,它有一个非常简单的表单,一个program.cs主文件和大约60个后端.cs文件。我想将项目转换为WPF应用程序。我看不出我想做什么 我需要 转换csproj文件,使其允许我添加WPF窗口 这种转换必须“就地”完成,以保持我的源代码管理整洁,避免将所有后端文件添加回其适当的文件夹中、添加对外部依赖项的引用等麻烦 创建一个空的mainwindow.xaml(+.cs)文件,我将用适当的控件手动填充该文件 然后,我将在视图和viewmodel文件之间手动拆分旧表单

我有一个Winform应用程序,它有一个非常简单的表单,一个program.cs主文件和大约60个后端.cs文件。我想将项目转换为WPF应用程序。我看不出我想做什么

我需要

  • 转换csproj文件,使其允许我添加WPF窗口
  • 这种转换必须“就地”完成,以保持我的源代码管理整洁,避免将所有后端文件添加回其适当的文件夹中、添加对外部依赖项的引用等麻烦
  • 创建一个空的mainwindow.xaml(+.cs)文件,我将用适当的控件手动填充该文件
然后,我将在视图和viewmodel文件之间手动拆分旧表单文件的内容

有没有比从头开始更容易的方法

编辑:我不希望将新的WPF ui托管到旧的winforms shell中,而是用WPF应用程序替换当前的表单应用程序


编辑2:我不想将整个项目和架构转换为WPF(因为它被多次询问和回答),我完全理解这是两个不同的框架,我完全愿意手动进行更改。我想将csproj转换为WPF应用程序,而不是表单应用程序

从edit2看来,您只想将项目类型从“Winforms”更改为“WPF”,而不更改任何项目项。我不知道为什么要这样做,但请尝试创建一个空的Winforms项目,然后创建一个空的WPF项目,然后比较两个项目文件


无论两个空项目之间有什么不同,都要对现有的Winforms项目进行更改。

对于那些不想自己进行比较的人来说,简短的回答是WPF.csproj文件包含一个附加属性:

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
只要把它放在第一个
部分,它在哪里都不重要


{60dc8134-eba5-43b8-bcc9-bb4bc16c2548}
的意思是这是一个WPF项目,
{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
表示一个C#项目。您可以从中了解更多关于项目类型GUID的信息。

任何与编码相关的信息?我肯定会从头开始。如果逻辑如此常见,您可以将“后端”文件作为自己的程序集。这是关于编程的,如果不是编码的话。@Alexei:从常见问题解答中可以看出:“在您的帮助下,我们正在共同构建一个关于编程的每个问题的详细答案库。”我的理解是,将visual studio项目配置为构建应用程序就是“编程”,不是吗?或者应该将项目转换为makefile,然后作为一个问题?我相信这是关于主题的,答案是“重新开始,没有可用的转换”。我也想更改项目项,但我知道如何做:)@digitlworld我同意。我不能删除我的,因为这是公认的答案。