最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何將Winform移植到.NET Core 3.0

 更新時間:2020年03月17日 09:21:15   作者:迷惘小書童  
這篇文章主要介紹了如何將Winform移植到.NET Core 3.0,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

參考將現(xiàn)有應(yīng)用程序移植到.NET Core 3.0

環(huán)境

首先要下載.NET Core 3.0Visual Studio 2019

編輯 csproj 文件

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

恢復(fù) NuGet 包

找到package.config文件右擊選擇Upgrade to PackageReference 但是我會彈框


我也不知道該怎么解決,搜了一圈沒搜到,如果有知道的可以在評論區(qū)告訴我,于是我就老老實實將

<?xml version="1.0" encoding="utf-8"?>
<packages>
 <package id="Dapper" version="1.50.2" targetFramework="net45" />
 <package id="EntityFramework" version="6.0.0" targetFramework="net45" />
 <package id="MySql.Data" version="6.7.9" targetFramework="net45" />
 <package id="System.Data.SQLite" version="1.0.108.0" targetFramework="net45" />
 <package id="System.Data.SQLite.Core" version="1.0.108.0" targetFramework="net45" />
 <package id="System.Data.SQLite.EF6" version="1.0.108.0" targetFramework="net45" />
 <package id="System.Data.SQLite.Linq" version="1.0.108.0" targetFramework="net45" />
</packages>

改為下列代碼,并寫到csproj文件中在 project的子節(jié)點中

<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>

增加引用

同時,有些dll是 .net framework獨有,而 .net core因為各種原因并沒有引用進來的。參考Porting to .NET Core。如以下幾個是需要重新引用的:

  • System.Data。雖然基礎(chǔ)層已經(jīng)是 .NET Core的一部分,即提供者模型和SQL客戶端,但目前還沒有一些功能,例如架構(gòu)支持和DataTable/ DataSet。
  • System.DirectoryServices。.NET Core目前不支持與LDAP或Active Directory通信。
  • System.Drawing。雖然嚴格來說它是客戶端API,但許多開發(fā)人員在服務(wù)器上使用繪圖API來提供縮略圖生成或水印。我們目前在 .NET Core中不支持這些API。
  • System.Transactions。雖然ADO.NET支持事務(wù),但不支持分布式事務(wù),其中包括環(huán)境事務(wù)和登記的概念。
  • System.Xml.Xsl和System.Xml.Schema。.NET Core支持XmlDocumentLinq XDocument,包括XPath。但是,目前不支持XSD(XmlSchema)或XSLT(XslTransform)。
  • System.Net.Mail。目前不支持使用這些API從 .NET Core發(fā)送電子郵件。
  • System.IO.Ports。.NET Core目前不包括與串行端口通信的功能。
  • System.Workflow。Windows Workflow Foundation(WF)目前在 .NET Core上不可用。
  • System.Xaml。在創(chuàng)建UWP應(yīng)用程序時,開發(fā)人員將使用WinRT XAML API。因此,.NET Core目前不包含托管XAML框架,該框架包括解析XAML文檔和實例化描述的對象圖的能力。

在我的項目中,我引用了這些:

<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_Data\data.db" />
  <None Include="packages.config" />
  <None Include="Properties\Settings.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_Data\data.db" />
  <None Include="packages.config" />
  <None Include="Properties\Settings.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數(shù)據(jù)庫

我的代碼中有帶Access數(shù)據(jù)庫相關(guān)代碼,都報了缺少程序集引用的錯誤,因此我初步增加了引用

<ItemGroup>
  <Reference Include="System.Data"/>
  <Reference Include="System.Data.OleDb"/>
 </ItemGroup>

但是還是沒用,參考了.NET Core Data Access,發(fā)現(xiàn)是.net core不支持Access的原因,因此都把這段代碼用條件編譯代碼 #if 給包起來了。

缺少hostfxr.dll文件


編譯成功后運行項目發(fā)現(xiàn)彈這個窗口,我查了下C:\Program Files\dotnet文件中是存在hostfxr.dll的,看了環(huán)境變量也是手動設(shè)置了DOTNET_ROOT變量的,但是總是出錯,沒辦法,最后通過復(fù)制hostfxr.dll文件到bin\Debug\netcoreapp3.0\下才運行成功

到此這篇關(guān)于如何將Winform移植到.NET Core 3.0的文章就介紹到這了,更多相關(guān)Winform移植到.NET Core 3.0內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 支持Ajax跨域訪問ASP.NET Web Api 2(Cors)的示例教程

    支持Ajax跨域訪問ASP.NET Web Api 2(Cors)的示例教程

    這篇文章主要介紹了支持Ajax跨域訪問ASP.NET Web Api 2(Cors)的示例教程,需要的朋友可以參考下
    2016-04-04
  • SQL Server數(shù)據(jù)庫連接 Web.config如何配置

    SQL Server數(shù)據(jù)庫連接 Web.config如何配置

    以下的文章主要描述的是Web.config正確配置SQL Server數(shù)據(jù)庫連接的實際擦步驟。我們以圖文結(jié)合的方式對其有個更好的說明,需要的朋友可以參考下
    2015-10-10
  • .NET Core使用FluentEmail發(fā)送郵件的示例代碼

    .NET Core使用FluentEmail發(fā)送郵件的示例代碼

    這篇文章主要介紹了.NET Core使用FluentEmail發(fā)送郵件的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • asp.net+ajaxfileupload.js 實現(xiàn)文件異步上傳代碼分享

    asp.net+ajaxfileupload.js 實現(xiàn)文件異步上傳代碼分享

    本文給大家分享一段asp.net基于ajaxfileupload.js實現(xiàn)文件異步上傳的代碼,本人項目中已經(jīng)在使用的代碼,小伙伴們可以直接移植到自己的項目中去。
    2014-11-11
  • Asp.net 后臺添加CSS、JS、Meta標簽的方法

    Asp.net 后臺添加CSS、JS、Meta標簽的方法

    是從Asp.net 后臺添加CSS、JS、Meta標簽的寫法,我們這里寫成函數(shù)方便以后使用,需要的朋友可以參考下
    2013-12-12
  • asp net core2.1如何使用jwt從原理到精通(二)

    asp net core2.1如何使用jwt從原理到精通(二)

    這篇文章主要給大家介紹了關(guān)于asp net core2.1如何使用jwt從原理到精通的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • asp.net檢查服務(wù)器上目錄或文件是否存在的方法

    asp.net檢查服務(wù)器上目錄或文件是否存在的方法

    這篇文章主要介紹了asp.net檢查服務(wù)器上目錄或文件是否存在的方法,主要通過asp.net的System.IO.File.Exists與System.IO.Directory.Exists來實現(xiàn),是非常實用的技巧,需要的朋友可以參考下
    2014-11-11
  • .NET 動態(tài)編譯

    .NET 動態(tài)編譯

    代碼的動態(tài)編譯并執(zhí)行是一個.NET平臺提供給我們的很強大的工具用以靈活擴展(當(dāng)然是面對內(nèi)部開發(fā)人員)復(fù)雜而無法估算的邏輯,并通過一些額外的代碼來擴展我們已有 的應(yīng)用程序。
    2009-05-05
  • asp.net Gridview里添加匯總行

    asp.net Gridview里添加匯總行

    在rowdatabound事件里添加同時showfooter設(shè)為true
    2008-11-11
  • .net core2.0下使用Identity改用dapper存儲數(shù)據(jù)(實例講解)

    .net core2.0下使用Identity改用dapper存儲數(shù)據(jù)(實例講解)

    下面小編就為大家分享一篇.net core2.0下使用Identity改用dapper存儲數(shù)據(jù)的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11

最新評論

启东市| 白水县| 綦江县| 莱州市| 沾益县| 潼关县| 平和县| 若羌县| 凤冈县| 洪湖市| 手机| 大悟县| 金湖县| 新蔡县| 德江县| 陵水| 响水县| 北海市| 城固县| 囊谦县| 河东区| 吉隆县| 郎溪县| 隆安县| 个旧市| 奉节县| 肇庆市| 平阳县| 崇义县| 旌德县| 马尔康县| 福清市| 阜南县| 右玉县| 隆化县| 福海县| 岳西县| 巴里| 青冈县| 苍溪县| 绿春县|