//创建一个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程序 代码,仅做备份的更多相关文章

  1. 把Asp.net Core程序代码部署到Ubuntu(不含数据库)

    今天记录一下第一次把.net core 程序发布到linux系统.linux用的是ubuntu Server 18.04版本.运行的IDE是vs 2019,发布出来是.net core 2.2版本. ...

  2. 将Windows系统编译的.NET Core程序发布到Ubuntu系统

    在可移植方面.NET Core应用程序分为两种,Portable application(便捷,需要目标机器安装.NET Core Runtime)和Self-contained applicatio ...

  3. WinPipe后门程序代码示例(仅限技术交流)

    具体怎么编译,生成执行程序,不懂得先学习C++程序代码编译和集成开发环境. 多的不说了,只有两个代码文件,一个头文件,一个源文件.不多说了,直接上干货. (恶意使用,或者商用,后果自负,与本人无关.) ...

  4. 反编译工具 使用.NET JustDecompile来反编译你的程序代码

    原文地址:http://www.it165.net/pro/html/201310/7383.html 前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序 ...

  5. 使用.NET JustDecompile来反编译你的程序代码

    前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL ...

  6. 编译调试 .NET Core 5.0 Preview 并分析 Span 的实现原理

    很久没有写过 .NET Core 相关的文章了,目前关店在家休息所以有些时间写一篇新的

  7. BPF CO-RE 示例代码解析

    BPF CO-RE 示例代码解析 在BPF的可移植性和CO-RE一文的末尾提到了一个名为runqslower的工具,该工具用于展示在CPU run队列中停留的时间大于某一值的任务.现在以该工具来展示如 ...

  8. 手把手教你用Jenkins自动发布dotnet core程序

    Jenkins部分 首先,我们要有个Jenkins咯,下载链接:https://jenkins.io/download/ 我们安装官网教程安装好jenkins,安装教程略.... 嗯?不是说好手把手么 ...

  9. 从头认识一下docker-附带asp.net core程序的docker化部署

    从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...

随机推荐

  1. File.Exists 文件不存在 Or FileNotFoundException

    标题警告,本文仅限走投无路,最终可能的一个问题导致. 最开始出现在找不到文件,测试发现: 看起来毫无毛病 而后各种测试: 注意看,第一行跟第三行一模一样 发现[@"‪‪‪]这两个字符有毒,如 ...

  2. HYSBZ 1208 宠物收养所 (Splay树)

    题意:一家宠物收养所负责处理领养者与遗弃宠物业务,有人来领宠物,则领一只最理想的.若没有宠物了,领养者们就得等到宠物来,宠物一来立刻送给其中一个等待者.如果有两个理想的选择,则选择那个值较小的.收养所 ...

  3. vSphere Client用户名密码保存记录

    vSphere Client在访问ESXi主机或vCenter后是默认不保存登录用户名和密码的,不过可以通过修改配置文件来保存,方便访问连接. 方法如下: 打开配置文件路径(实际安装路径):D:\Pr ...

  4. Hessian矩阵与牛顿法

    Hessian矩阵与牛顿法 牛顿法 主要有两方面的应用: 1. 求方程的根: 2. 求解最优化方法: 一. 为什么要用牛顿法求方程的根? 问题很多,牛顿法 是什么?目前还没有讲清楚,没关系,先直观理解 ...

  5. 云梯互联:所有主机已全面支持免费SSL!附小白配置教程。

    HTTPS和HTTP的区别:1.HTTPS是加密传输协议,HTTP是名文传输协议;2.HTTPS需要用到SSL证书,而HTTP不用;3.HTTPS比HTTP更加安全,对搜索引擎更友好,利于SEO4. ...

  6. (译)IOS block编程指南 2 block开始

    Getting Started with Blocks(开始block) The following sections help you to get started with blocks usin ...

  7. 技术抄录_Java高级架构师教程

    1.B2C商城项目实战     2.高性能架构专题     3.架构筑基与开源框架解析专题     4.团队协作开发专题     5.微服务架构专题     6.设计模式     附上[架构资料]   ...

  8. DROP SCHEMA - 删除一个模式

    SYNOPSIS DROP SCHEMA name [, ...] [ CASCADE | RESTRICT ] DESCRIPTION 描述 DROP SCHEMA 从数据库中删除模式. 模式只能被 ...

  9. docker之启动创建容器流程

    libcontainer的工作流程 execdriver的run方法通过docker daemon提交一份command信息创建了一份可供libcontainer解读的容器配置container,继而 ...

  10. ssget使用方法

    语法: (ssget [sel-method] [pt1 [pt2]] [pt-list] [filter-list]) ssget 的参数均为可选参数,需要注意的是可选参数之间的组合条件.以下语法表 ...