您的位置:时时app平台注册网站 > 彩世界网址 > vs for Mac中的启用Entity Framework Core .NET命令行工具

vs for Mac中的启用Entity Framework Core .NET命令行工具

2019-11-08 01:39

至于今后

从 .NET Core 开始的后生可畏段时代就从头关怀它的对象是相对不会忘了微软答应过“一个文书”的揭露办法。一定要说微软那是把卫星放早了。不是说微软后日无法给您来下二个文件的配置形式,而是风流罗曼蒂克旦那么玩,什么调试体验啦,什么优化了,什么都并未有了。那么您又该回头来骂微软 TMD 的是个大骗子了。

所以,恒心再等等。三个文书的布置格局,起码要等 CoreRT 和 .NET Native 完全做完,而从进程看,还有个别遥远无期咧。。。心寒。。。

生机勃勃:Dotnet Core Windows运维蒙受,标红部分要注意

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

附赠秘诀:.NET IL Linker

噩运的是,并非全体的顺序都如下边十二分例子那么纤弱苗条。

就问你大十分的小

呸!就问您大相当小,叁个 Hello World 七十多兆了。

固然不太情愿,微软谐和也只能认可这实在太不像话了,所以出了三个一时的消除方案,正是.NET IL Linker。使用情势还是,一点也不复杂(真想不到。。。卡塔尔国。

回到工程的根目录,运转

dotnet new nuget

如此一来会创立一个 nuget.config 文件,

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<packageSources>

<!--To inherit the global NuGet package sources remove the <clear/> line below -->

<clear />

</packageSources>

</configuration>

将它改正一下,

<?xml version="1.0" encoding="utf-8"?>

<configuration>

<packageSources>

  <add key="dotnet-core" value="" />

</packageSources>

</configuration>

那般我们就可见三回九转到微软温馨的测量试验用 NuGet 源。继续在命令行里面敲,

dotnet add package ILLink.Tasks -v 0.1.4-preview-981901

好了,那样 IL Linker 就装好了。你再回头用 dotnet publish 试试看,比方

dotnet publish -c Release --self-contained -r win-x64 /p:ShowLinkerSizeComparison=true

(注意这里 /p 部分只是令你看看缩短的作用,它不是必得的。卡塔尔国

什么,满足否?那回只剩余四十多兆了。

.NET Core dependencies

.NET Core 1.1 and earlier requires the Visual C Redistributable when running on Windows versions earlier than Windows 10 and Windows Server 2016. This dependency is automatically installed by the .NET Core installer.

Microsoft Visual C 2015 Redistributable Update 3 must be manually installed when:

  • Installing .NET Core with the installer script.
  • Deploying a self-contained .NET Core application.

Note

For Windows 7 and Windows Server 2008 machines only:
Make sure that your Windows installation is up-to-date and includes hotfix KB2533623 installed through Windows Update.

 

二:Dotnet Core程序发表

应用程序的公布,大致可以见到为三种境况,意气风发种是依据运营时的昭示,另风度翩翩种是不依赖全局.net core运营条件,“Self-contained”,即把具备信赖打包到合营的方法。

首先种方法比较遍布,发表到顾客遇到时,先安装.net core 的runtime,再把应用程序复制到顾客机,即完结布局。

第二种艺术非常一点,要求在公布时,将所依赖的周转条件,一齐打包到发表目录中。遵照合法表明,匡正csproj 品种文件,钦命目标情况的Runtime Identifier (RID) ,如下:

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.1</TargetFramework>
<RuntimeIdentifiers>win7-x64;osx.10.11-x64</RuntimeIdentifiers>
</PropertyGroup>
</Project>

下一场能够在.net core CLI中依旧Vs中,进行项目标宣告。

自家的透露目的为Windows server 二零一零 Highlander2,对应凯雷德ID为win7-x64,公布后的目录:EnclavetuServerbinReleaseWin2008R2,运行RtuServer.exe成功。

 

彩世界网址 1

.NET Framework 揶揄会集(部分卡塔 尔(阿拉伯语:قطر‎

从 .NET Framework 1.0 诞生之日起,叁个大概被问过几百万遍的主题材料就出现了,“笔者写的 .NET 程序怎么本领够直接配置而不依赖于 .NET Framework 呢?”那么,这种也许性有吗?

您或许听到的答案其实还蛮多,比方:

  • “做不到!”无论是初读书人还是闻名家员,给出那几个答案都不奇异,因为个其他思量情势不一样。初学者是不太驾驭还也是有何样花样,而著有名的人员常常大概是无意给你解释一大堆。

  • “打包 .NET Framework 安装包嘛!”能给您那一个标准答案的人,相信已然是趟过那条河了,现在有才干难点,一定记得去找他/她问哈。

  • “用飞信设想机!”给出这种答案的人,其实不小概正是你身边隐蔽的大神。就那二个名词背后就有太多故事可以长篇大论,然则并不是本文器重。有趣味的爱侣,可以在文后留言。假惹人数丰裕多,小编也不在意再写写。

对于相当多个人顾客来讲,把小则几十兆,大则几百兆的 .NET Framework 安装包做到和睦的程序安装包里面,在事先几年都以贰个恐怖的业务。且不说互联网下载之类以前带宽有限,固然是硬盘空间、光盘空间,也都以要留下其余注重数据(如图片、录像卡塔尔的呗,何地容得下二个何足道哉的周转时。

由此 .NET 程序就像从意气风发开头正是为厂家策动的,唯有他俩能够毫不厌恶地给机器装上那类东西,保障你的顺序能够顺利运营。而单独开辟职员,或然面向个人客户的软件开采公司,大概从手艺选型这时候就把 .NET 给停放生机勃勃边去了。

必须要说 Java 在这里上头就偷巧多了,在程序里面塞上多少个其实并非常大的 JVM,就足以让你毫无察觉(举个例子 Eclipse 内置 JVM卡塔尔国。

您也不要觉得微软协和如此设计它生活就好过了。首先,.NET Framework 就此成为了 Windows 系统上三个依期炸弹,安全补丁什么的,生命周期什么的,其实微软温馨也感到很糟糕搞。所以从 Windows Server 二〇〇〇 内置 .NET Framework 1.1 开首,微软团结也是惊恐不已的梦连连。其次 .NET Framework 相当慢有了 2.0/3.0/3.5/4.0/4.5/4.5.x/4.6.x/4.7.x那样许许多多的本子,安装和卸载或许导致的不安宁爆发,于是4.x上述都产生了原地替换安装。是的,其实那也是微软给和谐方便,即使客户一点也不高兴。倘使算上 Office 插件系统和 IIS 上分歧框架版本 .NET 程序的并行试行(side by side),我去,微软团结都快炸了。IIS 万幸一点,能够强制每一个应用程序池只好用特定版本的 .NET Framework,而 Office 要同不时间加载五个框架版本的插件,O名爵,其实骨子里麻烦的心如刀割。

到此地你就不会意外怎么后生可畏到了新平台 .NET Core,微软就引入我们用独立发表(self-contained)形式了吗。那么,那些情势到底怎么玩?

.NET Core supported Windows versions

.NET Core is supported on the following versions of :

  • Windows 7 SP1
  • Windows 8.1
  • Windows 10, Windows 10 Anniversary Update (version 1607) or later versions
  • Windows Server 2008 R2 SP1 (Full Server or Server Core)
  • Windows Server 2012 SP1 (Full Server or Server Core)
  • Windows Server 2012 R2 (Full Server or Server Core)
  • Windows Server 2016 (Full Server, Server Core, or Nano Server)

See .NET Core 2.x - Supported OS Versions for the complete list of .NET Core 2.x supported operating systems.

See .NET Core 1.x Supported OS Versions for the complete list of .NET Core 1.x supported operating systems.

4、然后在便捷菜单里挑选“在终极展开”

怎么快捷解决 .NET Core 程序的跨平台独立发表,

2、在类型弹出的全速菜单中选择编辑文件。

.NET Core 独立发表

实在此个局地真是轻松到。。。不能够再轻巧。安装完 .NET Core SDK,找个空目录,试下上面包车型地铁通令,

dotnet new console

dotnet publish -c Release --self-contained

OK,有没有不通啊?

/usr/local/share/dotnet/sdk/2.0.2/Sdks/Microsoft.NET.Sdk/build/Microsoft.NET.RuntimeIdentifierInference.targets(116,5): error : It is not supported to build or publish a self-contained application without specifying a RuntimeIdentifier.  Please either specify a RuntimeIdentifier or set SelfContained to false. [/Users/lextm/Projects/selfcontained/selfcontained.csproj]

一些也不要离奇,微软那是投石问路您还某些东西你须求提供,不然这几个布局职分无法搞。

为此这种时候大家就一定要张开工程文件看看,

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

<PropertyGroup>

<OutputType>Exe</OutputType>

<TargetFramework>netcoreapp2.0</TargetFramework>

</PropertyGroup>

</Project>

OK,试下把它改成这么,

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

<PropertyGroup>

<OutputType>Exe</OutputType>

<TargetFramework>netcoreapp2.0</TargetFramework>

<RuntimeIdentifiers>win-x86;win-x64;linux-x64;osx-x64</RuntimeIdentifiers>

</PropertyGroup>

</Project>

插手的那意气风发行钦命了富有这几个程序扶助的操作系统平台,依次是:Windows 叁十二个人,Windows 63位,Linux 六11位,macOS 陆拾伍个人。越来越多描述符资料,请查看 官方文书档案 。

上边回到命令行,继续公布,

dotnet publish -c Release --self-contained -r win-x64

Microsoft (R) Build Engine version 15.4.8.50001 for .NET Core

Copyright (C) Microsoft Corporation. All rights reserved.

selfcontained -> /Users/lextm/Projects/selfcontained/bin/Release/netcoreapp2.0/win-x64/selfcontained.dll

selfcontained -> /Users/lextm/Projects/selfcontained/bin/Release/netcoreapp2.0/win-x64/publish/

这么就做好了 Windows 六14个人须求的程序安排文件了。(别奇异下边的路子分隔符,因为自身是在Mac下面进行Windows 程序的发表哦。卡塔 尔(英语:State of Qatar)

开发那几个 publish 文件夹,大家瞄下微软都干了怎么样。

绝密的发布目录

,就 TMD 一个 Hello Kitty。。。World 程序,执意被塞了2十八个文本!!!(你的女华痛了呢?卡塔 尔(阿拉伯语:قطر‎然而骂归骂,把这一个文件夹原样拷贝到 Windows 机器上,然后双击 selfcontained.exe,它还就真的乖乖运营了。(如何是好,这么巧妙,只可以原谅它咯。卡塔尔

注意力回到刚才的发表命令,那几个 -r 按钮正是用来钦点目的平台的。假若要给三个阳台公布,能够频仍试行 dotnet publish,每回换下 -r 后边的陈说符。

 3、修改csproj文件:

写在最终

多年来有收起部分敌人私信提问。抱歉,除了后生可畏两句能解答的难点,别的复杂的自己无助交付答案。方便的话,请前往 Stack Overflow 之类的正经八百论坛求助。

风度翩翩经您确实须要请笔者做咨询服务,在下也是 明码标价,老少无欺。

谢谢阅读。

原稿地址:


.NET社区新闻,深度好文,招待访谈公众号小说汇总

5、在尖峰窗口里输入 dotnet ef 就足以操作了。

彩世界网址 2

 

彩世界网址 3

彩世界网址 4

 

彩世界网址 5

<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
    <PackageReference Include="microsoft.entityframeworkcore.design" Version="2.0.0"  PrivateAssets="All" />
     
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.0" />
  </ItemGroup>
   
    <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
  </ItemGroup>
</Project>

在vs for Mac的工具菜单中已没有了Package Manager Console。

  <PropertyGroup>
        <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

 

1、添加Nuget包(Microsoft.EntityFrameworkCore;Microsoft.EntityFrameworkCore.Design;Microsoft.EntityFrameworkCore.Tools):

小编们能够透过以下格局运用Entity Framework Core .NET命令行工具:

本文由时时app平台注册网站发布于彩世界网址,转载请注明出处:vs for Mac中的启用Entity Framework Core .NET命令行工具

关键词: