
.netcore跨平台 之 windows上编译,ubuntu上运行
发布日期:2021-05-09 04:15:02
浏览次数:16
分类:博客文章
本文共 8009 字,大约阅读时间需要 26 分钟。
1 下载并安装netcore sdk
下载地址 https://github.com/dotnet/cli选取合适的版本下载安装即可
打开 CMD ,输入dotnet,出现以下信息说明已安装好
C:\Users\71700>dotnetUsage: dotnet [--help | app.dll]
2 新建一个项目
新建项目在cmd 里输入dotnet new 即可
C:\Users\71700>mkdir demoC:\Users\71700>cd demoC:\Users\71700\demo>dotnet newCreated new C# project in C:\Users\71700\demo.C:\Users\71700\demo>dir 驱动器 C 中的卷没有标签。 卷的序列号是 3A94-0B71 C:\Users\71700\demo 的目录2016-04-25 14:58.2016-04-25 14:58 ..2016-04-25 14:58 214 Program.cs2016-04-25 14:58 308 project.json 2 个文件 522 字节 2 个目录 87,409,934,336 可用字节
可以看到共生成了两个文件 program.cs和project.json 以下是内容
Program.csusing System;namespace ConsoleApplication{ public class Program { public static void Main(string[] args) { Console.WriteLine("Hello World!"); } }}
project.json
{ "version": "1.0.0-*", "compilationOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0-rc2-3002485" } }, "frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" } }}
很简单的两个文件 ,就是要输出hello world
3 修改project.json 来支持交叉编译
{ "version": "1.0.0-*", "compilationOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": { "type": "platform", //此处去掉,加上的话发布的时候不会netcore的运行环境和基础类库一块发布,需要在目标平台上安装netcore ,去掉的话就不用在目标平台上安装netcore了 "version": "1.0.0-rc2-3002485" } }, "frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" } }, "runtimes":{"ubuntu.15.04-x64":{}} //加入runtimes }
4保存文件,还原引用包 运行dotnet restore
C:\Users\71700\demo>dotnet restorelog : Restoring packages for C:\Users\71700\demo\project.json...info : GET https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethostresolver/index.jsoninfo : CACHE https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/microsoft.netcore.dotnethostresolver/index.jsoninfo : NotFound https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethostresolver/index.json 1208msinfo : CACHE https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/microsoft.netcore.dotnethost/index.jsoninfo : GET https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethost/index.jsoninfo : NotFound https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethost/index.json 1935msinfo : Committing restore...log : Writing lock file to disk. Path: C:\Users\71700\demo\project.lock.jsonlog : C:\Users\71700\demo\project.jsonlog : Restore completed in 7649ms.NuGet Config files used: C:\Users\71700\NuGet.Config C:\Users\71700\AppData\Roaming\NuGet\NuGet.ConfigFeeds used: https://www.myget.org/F/dotnet-core/api/v3/index.json https://api.nuget.org/v3/index.json
5 编译代码 dotnet build -r ubuntu.15.04-x64
C:\Users\71700\demo>dotnet build -r ubuntu.15.04-x64
Compiling demo for .NETCoreApp,Version=v1.0Compilation succeeded.
0 Warning(s) 0 Error(s)Time elapsed 00:00:01.4677989
6发布程序 dotnet publish -r ubuntu.15.04-x64
C:\Users\71700\demo>dotnet publish -r ubuntu.15.04-x64Publishing demo for .NETCoreApp,Version=v1.0/ubuntu.15.04-x64Project demo (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.publish: Published to C:\Users\71700\demo\bin\Debug\netcoreapp1.0\ubuntu.15.04-x64\publishPublished 1/1 projects successfully
查看下publish文件夹
文件很多,其中demo是ubuntu上的可执行文件
7把publish文件加拷贝的共享文件夹里面 并挂载到ubuntu上 运行demo
先ls查看下文件里面的内容root@lius-Virtual-Machine:/mnt/share/publish# lsdemo System.Net.Http.dlldemo.deps.json System.Net.Http.Native.sodemo.dll System.Net.NameResolution.dlldemo.pdb System.Net.Primitives.dlldemo.runtimeconfig.json System.Net.Requests.dlllibcoreclr.so System.Net.Security.dlllibcoreclrtraceptprovider.so System.Net.Security.Native.solibdbgshim.so System.Net.Sockets.dlllibhostfxr.so System.Net.WebHeaderCollection.dlllibhostpolicy.so System.Numerics.Vectors.dlllibmscordaccore.so System.ObjectModel.dlllibmscordbi.so System.Private.Uri.dlllibsosplugin.so System.Reflection.DispatchProxy.dlllibsos.so System.Reflection.dllMicrosoft.CodeAnalysis.CSharp.dll System.Reflection.Emit.dllMicrosoft.CodeAnalysis.dll System.Reflection.Emit.ILGeneration.dllMicrosoft.CodeAnalysis.VisualBasic.dll System.Reflection.Emit.Lightweight.dllMicrosoft.CSharp.dll System.Reflection.Extensions.dllMicrosoft.VisualBasic.dll System.Reflection.Metadata.dllMicrosoft.Win32.Primitives.dll System.Reflection.Primitives.dllMicrosoft.Win32.Registry.dll System.Reflection.TypeExtensions.dllmscorlib.dll System.Resources.Reader.dllmscorlib.ni.dll System.Resources.ResourceManager.dllsosdocsunix.txt System.Runtime.dllSystem.AppContext.dll System.Runtime.Extensions.dllSystem.Buffers.dll System.Runtime.Handles.dllSystem.Collections.Concurrent.dll System.Runtime.InteropServices.dllSystem.Collections.dll System.Runtime.InteropServices.PInvoke.dllSystem.Collections.Immutable.dll System.Runtime.InteropServices.RuntimeInformation.dllSystem.Collections.NonGeneric.dll System.Runtime.Loader.dllSystem.Collections.Specialized.dll System.Runtime.Numerics.dllSystem.ComponentModel.Annotations.dll System.Security.Claims.dllSystem.ComponentModel.dll System.Security.Cryptography.Algorithms.dllSystem.Console.dll System.Security.Cryptography.Cng.dllSystem.Diagnostics.Debug.dll System.Security.Cryptography.Csp.dllSystem.Diagnostics.DiagnosticSource.dll System.Security.Cryptography.Encoding.dllSystem.Diagnostics.FileVersionInfo.dll System.Security.Cryptography.Native.soSystem.Diagnostics.Process.dll System.Security.Cryptography.OpenSsl.dllSystem.Diagnostics.StackTrace.dll System.Security.Cryptography.Primitives.dllSystem.Diagnostics.Tools.dll System.Security.Cryptography.X509Certificates.dllSystem.Diagnostics.Tracing.dll System.Security.Principal.dllSystem.Dynamic.Runtime.dll System.Security.Principal.Windows.dllSystem.Globalization.Calendars.dll System.Text.Encoding.CodePages.dllSystem.Globalization.dll System.Text.Encoding.dllSystem.Globalization.Extensions.dll System.Text.Encoding.Extensions.dllSystem.Globalization.Native.so System.Text.RegularExpressions.dllSystem.IO.Compression.dll System.Threading.dllSystem.IO.Compression.Native.so System.Threading.Overlapped.dllSystem.IO.Compression.ZipFile.dll System.Threading.Tasks.Dataflow.dllSystem.IO.dll System.Threading.Tasks.dllSystem.IO.FileSystem.dll System.Threading.Tasks.Extensions.dllSystem.IO.FileSystem.Primitives.dll System.Threading.Tasks.Parallel.dllSystem.IO.FileSystem.Watcher.dll System.Threading.Thread.dllSystem.IO.MemoryMappedFiles.dll System.Threading.ThreadPool.dllSystem.IO.UnmanagedMemoryStream.dll System.Threading.Timer.dllSystem.Linq.dll System.Xml.ReaderWriter.dllSystem.Linq.Expressions.dll System.Xml.XDocument.dllSystem.Linq.Parallel.dll System.Xml.XmlDocument.dllSystem.Linq.Queryable.dll System.Xml.XPath.dllSystem.Native.a System.Xml.XPath.XDocument.dllSystem.Native.so
执行dome
root@lius-Virtual-Machine:/mnt/share/publish# ./demoHello World!
成功输出 helloworld
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年03月29日 04时55分34秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
《我是猫》总结
2021-05-09
《抗糖化书》总结
2021-05-09
apache虚拟主机配置
2021-05-09
mcrypt加密以及解密过程
2021-05-09
go等待N个线程完成操作总结
2021-05-09
Python 之网络式编程
2021-05-09
python去除字符串中的特殊字符(爬虫存储数据时会遇到不能作为文件名的字符串)
2021-05-09
SpringCloud微服务(03):Hystrix组件,实现服务熔断
2021-05-09
网站故障公告1:使用阿里云RDS之后一个让人欲哭无泪的下午
2021-05-09
[网站公告]又拍云API故障造成图片无法上传(已恢复)
2021-05-09
上周热点回顾(6.9-6.15)
2021-05-09
.NET跨平台之旅:借助ASP.NET 5 Beta5的新特性显示CLR与操作系统信息
2021-05-09
上周热点回顾(5.9-5.15)
2021-05-09
上周热点回顾(1.23-1.29)
2021-05-09
【故障公告】10:30-10:45 左右 docker swarm 集群节点问题引发故障
2021-05-09
Python 简明教程 --- 20,Python 类中的属性与方法
2021-05-09
QBlog V2.5 源码开放下载(ASP.NET 番外系列之开端)
2021-05-09
稀疏数组
2021-05-09
Android MediaPlayer setDataSource failed
2021-05-09