//创建一个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. 从URL输入到页面展示都发生了什么?

    总的来说分为以下过程: DNS解析 TCP三次握手 发送HTTP请求 服务器端处理请求并返回HTTP保文 浏览器渲染页面 断开连接:TCP的四次挥手 URL到底是什么? URL(Uniform Res ...

  2. COGS 1439. [NOIP2013]货车运输

    ★★☆   输入文件:truck.in   输出文件:truck.out   简单对比时间限制:1 s   内存限制:128 MB [题目描述] [来源] CCF全国信息学奥林匹克联赛(NOIP201 ...

  3. Android系统级技巧合集

    Android系统级技巧合集(随时更新) #转载请注明来源# 1.高通骁龙系列查看CPU体质等级 CPU体质,即为CPU在工作频率下的电压.同一批次的CPU体质各有不同,体质越高,代表该颗CPU可在更 ...

  4. [整理]ADB命令行学习笔记

    global driver# 元素定位driver.find_element_by_id("id") # id定位driver.find_element_by_name(" ...

  5. EEPROM的存储大小

    学习单片机时,常见的EEPROM如24C02的大小为2Kbit(有的也称2KB).这里的2KB到底能存储多少数据呢? 2KB中,B表示单位bit,K表示1024. 单片机编程中常用的数据类型为unsi ...

  6. win7下自动更新svn目录

    !!注意,文件编码必须是ANSI.否则中文路径会乱码 ::这里是svn安装目录 set svnExe="C:\Program Files\TortoiseSVN\bin\TortoisePr ...

  7. modify django app models.py adn settings.py

    from django.db import models from django.contrib import admin # from personal import models class Us ...

  8. eclipse下svn的分支与合并指南 - 更新版

    http://wenku.baidu.com/link?url=ul5vzBHZpHgzENp46RQwTYrkCUYLeVg9TuhmPM_qisR1BGzp6Qca7onhS-SOzwDYuYdA ...

  9. 手动编译openslide

    1.下载openslide源代码, 2.转到openslide代码目录: ./configure 3.安装依赖库: sudo apt-get update sudo apt-get install l ...

  10. java(List或Array数组)求交集、并集、差集, 泛型工具类

    业务需要求不同类型的交集.并集.差集为避免代码冗余编写工具类. 注:list 转数组需传入数组,如果将原数组传入将会改变原数组的值,同时泛型数组又不可以实例化,解决方案:Arrays.copyOf(n ...