//创建一个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. laravel如何查找门脸及注入类方法

    门脸模式 通过 config/app.php 查看别名对应类名 Illuminate\Support\Facades\Log ,查看 LoggerInterface 类文件,得:命名空间+接口名 Ps ...

  2. resharper10 注册方法

    注册工具:http://pan.baidu.com/s/1bnFjGfX 注册方法: 1 编辑Products.json文件,留下自己要注册的产品路径即可. 2 运行patch.exe 3 使用Ser ...

  3. MongoDB最简单的入门教程之一 环境搭建

    MongoDB是近年来非常流行的一个介于关系数据库和非关系数据库之间的解决方案,特别广泛地应用于国内很多互联网公司,是非关系数据库当中功能最丰富,最像关系数据库的. MongoDB支持的数据结构非常松 ...

  4. Proguard配置文件内容

    -injars elec-bendao-1.2.jar-outjars elec-bendao-1.2-end.jar -libraryjars lib\charsets.jar-libraryjar ...

  5. 整理几个牛人博客以及OJ

    Blogs 陈立杰(wjmzbmr):http://wjmzbmr.com/ 飘过的小牛:http://blog.csdn.net/niushuai666 王垠:http://www.yinwang. ...

  6. Java多线程的内存模型和Thread状态切换

    线程的内存模型 32位操作系统的寻址空间为2的32次方,也就是4GB的寻址空间:系统在这4GB的空间里划分出1GB的空间给系统专用,称作内核空间,具有最高权限:剩下3GB的空间为用户空间(一般JVM的 ...

  7. PyQt5-Python3-PyCharm 配置

    File->Tools->External Tools->add 配置ui文件转换工具 Name: PyUIC Program: D:\develop\python\Mac\venv ...

  8. linux破解root登录密码,并重置

    重启系统后按'e'键,进入编辑模式,在'UTF -8'后空格输入'rd.break'后,按快捷键'Ctrl+X'进入新界面进行编辑,代码如下: switch_root:/# mount -o remo ...

  9. Django框架基础知识07-常用查询及表关系的实现

    1.常用的模型字段类型 https://docs.djangoproject.com/en/2.1/ref/models/fields/#field-types 2.字段的常用参数 官方文档:http ...

  10. pwntools各使用模块简介

    pwntools pwntools 是一款专门用于CTF Exploit的python库,能够很方便的进行本地与远程利用的切换,并且里面包含多个模块,使利用变得简单.可以在github上直接搜索pwn ...