Skip to content

获得源码&编译教程

chatop2020 edited this page Dec 13, 2020 · 4 revisions

操作系统要求

  • 你的操作系统必须支持.net core 3.1
    下载地址:https://dotnet.microsoft.com/download/dotnet-core/3.1
    根据自己的操作系统下载不同的.net core3.1安装包
  • 如果你是Windows操作系统,必须安装.net framework4.0及以上
    下载地址:https://dotnet.microsoft.com/download/dotnet-framework/net40
    可以选择.net framework 4.7.1版本进行安装,由于Windows操作系统下,有一个性能组件(WindowsNetworkStaCli)采用了.net framework4.0进行开发的,所以必须安装这个运行库才能运行,正常的话Windows10操作系统已经是自带.net framework4.0运行库的,可以不用安装(阉割版windows10就不是太好说了)。
  • 如果你是Windows以外的操作系统,建议在安装.net core 3.1的基础上另外安装Mono运行环境
    下载地址:https://www.mono-project.com/download/stable/
    根据自己的操作系统选择下载并安装Mono SDK,这个可能有助于在非Windows操作系统下编译性能组件WindowsNetworkStaCli。
  • 拥有双核以上CPU
  • 拥有2G以上内存
  • 在编译过程中会需要下载一些第三方包,所以需要保证网络通畅(注意搬梯子)

编译方法

  • 建议使用JetBrains Rider 加载工程然后编译

原码下载

  • Windows下要安装gitbash,其他操作系统安装git工具才可以使用git clone操作,否则直接下载github上的zip源码包也可以
  • 安装了git工具的可以使用以下命令进行代码下载(注意搬梯子)
git clone https://github.com/chatop2020/StreamNode-GB28181.git

编译

  • 建议使用JetBrains Rider 加载工程然后编译(首选)
  • 以下是针对有经验的开发者的编译方法,没有经验的尽量选择Rider进行编译
  • 进入原码目录
  • 运行dotnet build进行编译
  • 编译Release版本时在dotnet build 后面要加参数 --configuration Release
  • 建议编译时先将项目中的"WinNetworkStaCli"工程删除掉,否则将会有报错,不过就算不删掉,报错也不影响其他工程的编译

例1-Linux下进行编译

qiuzhouwei@qiuzhouweideMacBook-Pro Source % git clone https://github.com/chatop2020/StreamNode-GB28181.git
Cloning into 'StreamNode-GB28181'...
remote: Enumerating objects: 447, done.
remote: Counting objects: 100% (447/447), done.
remote: Compressing objects: 100% (291/291), done.
remote: Total 2803 (delta 266), reused 288 (delta 145), pack-reused 2356
Receiving objects: 100% (2803/2803), 1.86 MiB | 8.00 KiB/s, done.
Resolving deltas: 100% (1755/1755), done.
qiuzhouwei@qiuzhouweideMacBook-Pro Source % cd StreamNode-GB28181 
qiuzhouwei@qiuzhouweideMacBook-Pro StreamNode-GB28181 % dotnet build --configuration Release

一直等到编译完成,在各工程的目录中的bin/Release/netcoreapp3.1下生成很多文件,这些就是可执行文件,之后运行项目需要他们,这些文件就是各工程编译完成的可执行文件, 一般以.dll,.xml,等扩展名结尾

qiuzhouwei@qiuzhouweideMacBook-Pro netcoreapp3.1 % ls -lh
total 7744
-rwxr--r--  1 qiuzhouwei  staff    30K  2  6  2019 INIFileParser.dll
-rw-r--r--  1 qiuzhouwei  wheel    24K 11 27 15:29 LibSystemInfo.dll
-rw-r--r--  1 qiuzhouwei  wheel    20K 11 27 15:29 LibSystemInfo.pdb
-rw-r--r--  1 qiuzhouwei  wheel   5.0K 11 27 15:29 Logger.dll
-rw-r--r--  1 qiuzhouwei  wheel   9.8K 11 27 15:29 Logger.pdb
-rwxr--r--  1 qiuzhouwei  staff   166K  9 15  2019 Microsoft.OpenApi.dll
-rwxr--r--  1 qiuzhouwei  staff   677K 11  9  2019 Newtonsoft.Json.dll
drwxr-xr-x  3 qiuzhouwei  wheel    96B 11 27 15:29 Properties
-rw-r--r--  1 qiuzhouwei  wheel   113K 11 27 15:29 StreamMediaServerKeeper.deps.json
-rw-r--r--  1 qiuzhouwei  wheel    70K 11 27 15:29 StreamMediaServerKeeper.dll
-rw-r--r--  1 qiuzhouwei  wheel    43K 11 27 15:29 StreamMediaServerKeeper.pdb
-rw-r--r--  1 qiuzhouwei  wheel   163B 11 27 15:29 StreamMediaServerKeeper.runtimeconfig.dev.json
-rw-r--r--  1 qiuzhouwei  wheel   213B 11 27 15:29 StreamMediaServerKeeper.runtimeconfig.json
-rw-r--r--  1 qiuzhouwei  wheel    29K 11 27 15:29 Swagger.xml
-rwxr--r--  1 qiuzhouwei  staff    18K  6 25 21:14 Swashbuckle.AspNetCore.Annotations.dll
-rwxr--r--  1 qiuzhouwei  staff    14K  6 25 21:14 Swashbuckle.AspNetCore.Swagger.dll
-rwxr--r--  1 qiuzhouwei  staff    72K  6 25 21:14 Swashbuckle.AspNetCore.SwaggerGen.dll
-rwxr--r--  1 qiuzhouwei  staff   1.8M  6 25 21:14 Swashbuckle.AspNetCore.SwaggerUI.dll
-rwxr--r--  1 qiuzhouwei  staff   373K  5 15  2018 System.Configuration.ConfigurationManager.dll
-rwxr--r--  1 qiuzhouwei  staff    25K  5 15  2018 System.Security.Cryptography.ProtectedData.dll
-rwxr--r--  1 qiuzhouwei  staff    23K 10 24  2017 SystemInfoLibrary.dll
-rw-r--r--  1 qiuzhouwei  wheel   159B 11 27 15:29 appsettings.Development.json
-rw-r--r--  1 qiuzhouwei  wheel   182B 11 27 15:29 appsettings.json
-rwxr--r--  1 qiuzhouwei  staff   252K  9 18 11:44 log4net.dll
drwxr-xr-x  3 qiuzhouwei  wheel    96B 11 27 15:29 runtimes
  • 由于非windows操作系统不需要使用WinNetworkStaCli工程,因此不做此工程的编译介绍

例2 -WinNetworkStaCli工程编译

  • WinNetworkStaCli工程是Windows操作系统专属的系统网络性能收集程序,只有Windows操作系统才需要编译这个工程
  • WinNetworkStaCli工程是基于.net framework4.0开发的,因此需要使用windows操作系统进行编译,虽然在其他操作系统下用mono也可以编译,这里不作介绍
  • 安装使用Visual Studio 2017及以上对WinNetworkStaCli工程进行编译(也可以通过mono或msbuild命令行编译,不作额外介绍)
  • 编译成功后将在工程目录下生成bin/Release[Debug]/WinNetworkStaCli.exe 可执行文件
  • 这个可执行文件在Windows平台上部署运行StreamNode-GB28181时会使用得到。