如何将Winform移植到.NET Core 3.0

2020-03-17 14:01:11王冬梅

在我的项目中,我引用了这些:

<ItemGroup>
  <Reference Include="System.Data"/>
  <Reference Include="System.Xaml"/>
  <Reference Include="System.Transactions"/>
  <Reference Include="System.Drawing"/>
  <Reference Include="System.Data.DataSetExtensions" />
  <Reference Include="Microsoft.CSharp" />
  <Reference Include="System.Net.Http" />
 </ItemGroup>

增加其他文件

增加了如下几个项目本身就有的文件

<ItemGroup>
  <None Include="App_Datadata.db" />
  <None Include="packages.config" />
  <None Include="PropertiesSettings.settings">
   <Generator>SettingsSingleFileGenerator</Generator>
   <LastGenOutput>Settings.Designer.cs</LastGenOutput>
  </None>
 </ItemGroup>
 <ItemGroup>
  <None Include="App.config">
   <SubType>Designer</SubType>
  </None>
 </ItemGroup>

最终的csproj文件

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

 <PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFramework>netcoreapp3.0</TargetFramework>
  <UseWindowsForms>true</UseWindowsForms>
  <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
 </PropertyGroup>
 <ItemGroup>
  <PackageReference Include="Dapper" Version="1.50.2" />
  <PackageReference Include="EntityFramework" Version="6.0.0" />
  <PackageReference Include="MySql.Data" Version="6.7.9" />
  <PackageReference Include="System.Data.SQLite" Version="1.0.108.0" />
  <PackageReference Include="System.Data.SQLite.Core" Version="1.0.108.0" />
  <PackageReference Include="System.Data.SQLite.EF6" Version="1.0.108.0" />
  <PackageReference Include="System.Data.SQLite.Linq" Version="1.0.108.0" />
 </ItemGroup>
 <ItemGroup>
  <Reference Include="System.Data"/>
  <Reference Include="System.Xaml"/>
  <Reference Include="System.Transactions"/>
  <Reference Include="System.Drawing"/>
  <Reference Include="System.Data.DataSetExtensions" />
  <Reference Include="Microsoft.CSharp" />
  <Reference Include="System.Net.Http" />
 </ItemGroup>
 <ItemGroup>
  <None Include="App_Datadata.db" />
  <None Include="packages.config" />
  <None Include="PropertiesSettings.settings">
   <Generator>SettingsSingleFileGenerator</Generator>
   <LastGenOutput>Settings.Designer.cs</LastGenOutput>
  </None>
 </ItemGroup>
 <ItemGroup>
  <None Include="App.config">
   <SubType>Designer</SubType>
  </None>
 </ItemGroup>
</Project>

移植过程中遇到的问题

.net core不支持Access数据库

我的代码中有带Access数据库相关代码,都报了缺少程序集引用的错误,因此我初步增加了引用