如何将Old Winform项目迁移到新的VS2017项目格式



我们目前正在将项目升级到新的VS2017项目格式。其背后的主要原因是将一些库从pcl转换为.NETSTANDARD,并能够使用新的项目格式附带的新内置的Nuget软件包功能,从而摆脱了整个Nuget/Library参考/依赖关系问题。p> [编辑]解决解决方案中所有项目的主要原因是防止在混合旧时(仍与.nuspec一起使用(和新格式项目

时,在.nupkg中无法获得正确的依赖关系的问题

问题的答案如何如何将WPF项目迁移到新的VS2017格式,这帮助我们很长一段路要转换项目的WPF部分。但是,我们仍然有大量的Windows表单内容,这些内容无法替换或升级。

仅转换项目文件,添加适当的文件依赖项(对于 *.designer.cs and *.resx文件(,我们设法将其汇编。

现在,我们如何以使Visual Studio 2017的方式声明项目项目a(将它们视为USERCORTROL还是形式?b(打开Winforms设计器工具以相应编辑.CS或Designer.cs文件?

都非常赞赏找到解决方案的任何提示。

我不认为SDK样式项目对各种设计师都有支持。虽然您可以将嵌套的文件与DependentUpon属性一起使用,但这是可以得到的。

也就是说,如果您的主要目的是使用新的Nuget功能并使用及时的Nuget参考,则现有项目系统现在支持此功能。

只需手动删除所有Nuget软件包,然后删除packages.config文件即可。然后,您可能必须在CSPROJ中设置<RestoreProjectStyle>PackageReference</RestoreProjectStyle>。当您这样做时,旧版项目类型现在应使用PackageReference Nuget参考并进行及时还原。

请注意,只有软件包是通过这种方式传递的,项目对项目的参考不是,因此您需要与以前相同的P2P参考。

发布.NET Core 3.0后,Winforms现在得到了支持,但目前为Q4 2020安排了设计师支持,可以使用Visual Studio 16.4预览3或以后进行预览要设置 tools-> Options->预览功能 ->使用Windows Forms Designer的预览。

SDK风格的项目应如下设置...

<ProjectSdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>
  </PropertyGroup>
</Project>

开始启动之前,建议您针对该项目运行可移植性分析仪,因为存在一些已知差异/不兼容。还有另一个称为try-convert的工具,它将尝试转换您的项目。

最新更新