.netcore跨平台 之 windows上编译,ubuntu上运…
2018-06-18 02:06:32来源:未知 阅读 ()
1 下载并安装netcore sdk
下载地址 https://github.com/dotnet/cli
选取合适的版本下载安装即可
打开 CMD ,输入dotnet,出现以下信息说明已安装好
C:\Users\71700>dotnet Usage: dotnet [--help | app.dll]
2 新建一个项目
新建项目在cmd 里输入dotnet new 即可
C:\Users\71700>mkdir demo C:\Users\71700>cd demo C:\Users\71700\demo>dotnet new Created 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 <DIR> . 2016-04-25 14:58 <DIR> .. 2016-04-25 14:58 214 Program.cs 2016-04-25 14:58 308 project.json 2 个文件 522 字节 2 个目录 87,409,934,336 可用字节
可以看到共生成了两个文件 program.cs和project.json 以下是内容
Program.cs
using 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 restore log : Restoring packages for C:\Users\71700\demo\project.json... info : GET https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethostresolver/index.json info : CACHE https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/microsoft.netcore.dotnethostresolver/index.json info : NotFound https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethostresolver/index.json 1208ms info : CACHE https://dotnetmyget.blob.core.windows.net/artifacts/dotnet-core/nuget/v3/flatcontainer/microsoft.netcore.dotnethost/index.json info : GET https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethost/index.json info : NotFound https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnethost/index.json 1935ms info : Committing restore... log : Writing lock file to disk. Path: C:\Users\71700\demo\project.lock.json log : C:\Users\71700\demo\project.json log : Restore completed in 7649ms. NuGet Config files used: C:\Users\71700\NuGet.Config C:\Users\71700\AppData\Roaming\NuGet\NuGet.Config Feeds 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.0
Compilation 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-x64 Publishing demo for .NETCoreApp,Version=v1.0/ubuntu.15.04-x64 Project 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\publish Published 1/1 projects successfully
查看下publish文件夹
文件很多,其中demo是ubuntu上的可执行文件
7把publish文件加拷贝的共享文件夹里面 并挂载到ubuntu上 运行demo
先ls查看下文件里面的内容
root@lius-Virtual-Machine:/mnt/share/publish# ls demo System.Net.Http.dll demo.deps.json System.Net.Http.Native.so demo.dll System.Net.NameResolution.dll demo.pdb System.Net.Primitives.dll demo.runtimeconfig.json System.Net.Requests.dll libcoreclr.so System.Net.Security.dll libcoreclrtraceptprovider.so System.Net.Security.Native.so libdbgshim.so System.Net.Sockets.dll libhostfxr.so System.Net.WebHeaderCollection.dll libhostpolicy.so System.Numerics.Vectors.dll libmscordaccore.so System.ObjectModel.dll libmscordbi.so System.Private.Uri.dll libsosplugin.so System.Reflection.DispatchProxy.dll libsos.so System.Reflection.dll Microsoft.CodeAnalysis.CSharp.dll System.Reflection.Emit.dll Microsoft.CodeAnalysis.dll System.Reflection.Emit.ILGeneration.dll Microsoft.CodeAnalysis.VisualBasic.dll System.Reflection.Emit.Lightweight.dll Microsoft.CSharp.dll System.Reflection.Extensions.dll Microsoft.VisualBasic.dll System.Reflection.Metadata.dll Microsoft.Win32.Primitives.dll System.Reflection.Primitives.dll Microsoft.Win32.Registry.dll System.Reflection.TypeExtensions.dll mscorlib.dll System.Resources.Reader.dll mscorlib.ni.dll System.Resources.ResourceManager.dll sosdocsunix.txt System.Runtime.dll System.AppContext.dll System.Runtime.Extensions.dll System.Buffers.dll System.Runtime.Handles.dll System.Collections.Concurrent.dll System.Runtime.InteropServices.dll System.Collections.dll System.Runtime.InteropServices.PInvoke.dll System.Collections.Immutable.dll System.Runtime.InteropServices.RuntimeInformation.dll System.Collections.NonGeneric.dll System.Runtime.Loader.dll System.Collections.Specialized.dll System.Runtime.Numerics.dll System.ComponentModel.Annotations.dll System.Security.Claims.dll System.ComponentModel.dll System.Security.Cryptography.Algorithms.dll System.Console.dll System.Security.Cryptography.Cng.dll System.Diagnostics.Debug.dll System.Security.Cryptography.Csp.dll System.Diagnostics.DiagnosticSource.dll System.Security.Cryptography.Encoding.dll System.Diagnostics.FileVersionInfo.dll System.Security.Cryptography.Native.so System.Diagnostics.Process.dll System.Security.Cryptography.OpenSsl.dll System.Diagnostics.StackTrace.dll System.Security.Cryptography.Primitives.dll System.Diagnostics.Tools.dll System.Security.Cryptography.X509Certificates.dll System.Diagnostics.Tracing.dll System.Security.Principal.dll System.Dynamic.Runtime.dll System.Security.Principal.Windows.dll System.Globalization.Calendars.dll System.Text.Encoding.CodePages.dll System.Globalization.dll System.Text.Encoding.dll System.Globalization.Extensions.dll System.Text.Encoding.Extensions.dll System.Globalization.Native.so System.Text.RegularExpressions.dll System.IO.Compression.dll System.Threading.dll System.IO.Compression.Native.so System.Threading.Overlapped.dll System.IO.Compression.ZipFile.dll System.Threading.Tasks.Dataflow.dll System.IO.dll System.Threading.Tasks.dll System.IO.FileSystem.dll System.Threading.Tasks.Extensions.dll System.IO.FileSystem.Primitives.dll System.Threading.Tasks.Parallel.dll System.IO.FileSystem.Watcher.dll System.Threading.Thread.dll System.IO.MemoryMappedFiles.dll System.Threading.ThreadPool.dll System.IO.UnmanagedMemoryStream.dll System.Threading.Timer.dll System.Linq.dll System.Xml.ReaderWriter.dll System.Linq.Expressions.dll System.Xml.XDocument.dll System.Linq.Parallel.dll System.Xml.XmlDocument.dll System.Linq.Queryable.dll System.Xml.XPath.dll System.Native.a System.Xml.XPath.XDocument.dll System.Native.so
执行dome
root@lius-Virtual-Machine:/mnt/share/publish# ./demo
Hello World!
成功输出 helloworld
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 一个工业级、跨平台、轻量级的 tcp 网络服务框架:gevent 2020-06-05
- windows7 + Qt(MSVC2017) + VS2019安装配置 2020-04-25
- windows10环境下QtCreator中出现skipping incompatible xxx 2020-03-31
- Windows 创建 .gdbinit 提示必须键入文件名 2020-03-17
- vscode C++ 程序 windows 2020-03-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash