编译.net .net Core程序 代码,仅做备份
//创建一个ProcessStartInfo对象 使用系统shell 指定命令和参数 设置标准输出 //编译.net core项目
var psi = new ProcessStartInfo("dotnet", "build inputproject/Lord.Core.sln") { RedirectStandardOutput = true };
psi.WindowStyle = ProcessWindowStyle.Hidden;
StringBuilder buildlog = new StringBuilder();
//启动
var proc = Process.Start(psi);
if (proc == null)
{
Console.WriteLine("Can not exec.");
}
else
{
//开始读取
using (var sr = proc.StandardOutput)
{
while (!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
buildlog.Append(sr.ReadLine() + "\r\n");
}
if (!proc.HasExited)
{
proc.Kill();
}
}
if (proc.ExitCode == )
{
Console.WriteLine("编译通过");
}
else
{
Console.WriteLine("编译未通过");
Console.WriteLine(buildlog.ToString());
}
}
var allfiles = Directory.GetFiles("inputproject", "*.dll", new EnumerationOptions() { RecurseSubdirectories = true });
var filterfiles = new List<string>();
var files = new List<string>();
foreach (var item in allfiles)
{
if (!filterfiles.Contains(Path.GetFileName(item)))
{
files.Add(item);
filterfiles.Add(Path.GetFileName(item));
}
}
List<Type> lsttypes = new List<Type>();
foreach (var item in files)
{
Assembly assembly = Assembly.LoadFile(Path.GetFullPath(item));
try
{
var types = assembly.GetTypes();
foreach (var tp in types)
{
if (tp.BaseType == typeof(System.Enum))
{
Console.WriteLine("Enum:" + tp.Name);
}
else if (tp.IsPublic && !tp.IsInterface && !tp.IsAbstract)
{
lsttypes.Add(tp);
}
}
}
catch
{
continue;
}
}
foreach (var tp in lsttypes)
{
Console.WriteLine(string.Concat("class:" + tp.FullName));
foreach (var item in tp.GetProperties())
{
Console.Write(item.Name + "|" + item.PropertyType + " ");
}
Console.WriteLine();
Console.WriteLine();
}
Console.ReadKey();
编译.net core项目
var process = new ProcessStartInfo("C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/MSBuild/15.0/Bin/MSBuild.exe", " E:/workZZF/src/SKIAD/LORD.SKIAD.WEB.sln /m /p:Platform=\"Any CPU\";CleanFile=\"true\";WarningLevel=0 /t:rebuild") { RedirectStandardOutput = true };
var x = Process.Start(process);
if (x == null)
{
Console.WriteLine("null");
return;
}
//开始读取
using (var sr = x.StandardOutput)
{
while (!sr.EndOfStream)
{
Console.WriteLine(sr.ReadLine());
//buildlog.Append(sr.ReadLine() + "\r\n");
}
if (!x.HasExited)
{
x.Kill();
}
}
if (x.ExitCode == )
{
Console.WriteLine("编译通过");
}
else
{
Console.WriteLine("编译未通过");
// Console.WriteLine(buildlog.ToString());
}
var allfiles = Directory.GetFiles("E:\\workZZF\\src\\SKIAD", "*.dll", new EnumerationOptions() { RecurseSubdirectories = true });
var filterfiles = new List<string>();
var files = new List<string>();
foreach (var item in allfiles)
{
if (!filterfiles.Contains(Path.GetFileName(item)))
{
files.Add(item);
filterfiles.Add(Path.GetFileName(item));
}
}
List<Type> lsttypes = new List<Type>();
foreach (var item in files)
{
try
{
Assembly assembly = Assembly.LoadFile(Path.GetFullPath(item));
var types = assembly.GetTypes();
foreach (var tp in types)
{
if (tp.BaseType == typeof(System.Enum))
{
Console.WriteLine("Enum:" + tp.Name);
}
else if (tp.IsPublic && !tp.IsInterface && !tp.IsAbstract)
{
lsttypes.Add(tp);
}
}
}
catch
{
continue;
}
}
foreach (var tp in lsttypes)
{
Console.WriteLine(string.Concat("class:" + tp.FullName));
foreach (var item in tp.GetProperties())
{
try
{
Console.Write(item.Name + "|" + item.PropertyType + " ");
}
catch
{
continue;
}
}
Console.WriteLine();
}
/ Console.ReadKey();
编译.net 项目 需要配置MSbuild.exe的位置,全路径
编译.net .net Core程序 代码,仅做备份的更多相关文章
- 把Asp.net Core程序代码部署到Ubuntu(不含数据库)
今天记录一下第一次把.net core 程序发布到linux系统.linux用的是ubuntu Server 18.04版本.运行的IDE是vs 2019,发布出来是.net core 2.2版本. ...
- 将Windows系统编译的.NET Core程序发布到Ubuntu系统
在可移植方面.NET Core应用程序分为两种,Portable application(便捷,需要目标机器安装.NET Core Runtime)和Self-contained applicatio ...
- WinPipe后门程序代码示例(仅限技术交流)
具体怎么编译,生成执行程序,不懂得先学习C++程序代码编译和集成开发环境. 多的不说了,只有两个代码文件,一个头文件,一个源文件.不多说了,直接上干货. (恶意使用,或者商用,后果自负,与本人无关.) ...
- 反编译工具 使用.NET JustDecompile来反编译你的程序代码
原文地址:http://www.it165.net/pro/html/201310/7383.html 前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序 ...
- 使用.NET JustDecompile来反编译你的程序代码
前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL ...
- 编译调试 .NET Core 5.0 Preview 并分析 Span 的实现原理
很久没有写过 .NET Core 相关的文章了,目前关店在家休息所以有些时间写一篇新的
- BPF CO-RE 示例代码解析
BPF CO-RE 示例代码解析 在BPF的可移植性和CO-RE一文的末尾提到了一个名为runqslower的工具,该工具用于展示在CPU run队列中停留的时间大于某一值的任务.现在以该工具来展示如 ...
- 手把手教你用Jenkins自动发布dotnet core程序
Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...
- 从头认识一下docker-附带asp.net core程序的docker化部署
从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...
随机推荐
- 开启server-status失败
近日在配置监控宝的apache监控老是出错,经过研究发现如下: 下面先做一些简要的介绍,以防以后查看之用. 一.server-status是什么?二.如何打开server-status?三.serve ...
- vue跨域解决及打包
打包之前需要修改如下配置文件: 配置文件一:build>>>utils.js (修改publicPath:"../../" , 这样写是处理打包后找不到静态文件( ...
- Hystrix 断路器
断路器: 当客户端访问服务端,发现服务端有异常不能进行访问时,就会执行一个fallback 方法.
- how to get many stars on Github?
some key points: 1: make a beautiful README file2: use some GIF (google some tools to convert videos ...
- JavaSE-28 hashCode()方法、equals()方法和==相关概念
概述 Java中,Object类是所有类的基类:如果一个类没有明确继承其他已定义的类,则默认继承Object类. Object类提供了以下方法,对于其他方法,请参考前期专题描述. hashCode() ...
- 第4节 hive调优:2、数据倾斜
数据的倾斜: 主要就是合理的控制我们的map个数以及reduce个数 第一个问题:maptask的个数怎么定的???与我们文件的block块相关,默认一个block块就是对应一个maptask 第二个 ...
- 用Multisim实现彩灯循环控制器
2019/06/06 !转载请注明出处 1.设计任务目的与要求 1.1 展示器件 10路彩灯分别用10个发光二极管L0.L1…..L9模拟,发光二极管L0.L1…..L9从左到右排列. 1.2 要求显 ...
- [JOYOI] 1061 Mobile Service
题目限制 时间限制 内存限制 评测方式 题目来源 1000ms 131072KiB 标准比较器 Local 题目描述 一个公司有三个移动服务员.如果某个地方有一个请求,某个员工必须赶到那个地方去(那个 ...
- img元素srcset属性浅析
img srcset 属性 img 元素的 srcset 属性用于浏览器根据宽.高和像素密度来加载相应的图片资源. 属性格式:图片地址 宽度描述w 像素密度描述x,多个资源之间用逗号分隔.例如: &l ...
- 如何用纯 CSS 创作 404 文字变形为 NON 文字的交互特效
效果预览 在线演示 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/ZoxjXm 可交互视频教 ...