原本我是使用批处理调用 MSBuild 完成解决方案编译的,新版的 MSBuild 在 Visual Studio 2015 会自带安装. 当然在Visual Studio 2015 中,MSBuild 是一个独立的安装包,可以单独安装,而无须安装 Visual Studio 2015. 刚开始,我在 Windows Server 2008 R2 上使用 MSBuild 编译使用 .NET Framework 4.5.2 版本 开发的项目,也不是那么顺利的. 期间,遇到并且解决了很多问题,依次顺…
原文:win10 uwp 使用 msbuild 命令行编译 UWP 程序 版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问.如果当前博客图片看不到,请到 http://lindexi.gitee.io 访问博客.本文地址 https://blog.csdn.net/lindexi_gd/article/details/84252865 本文告诉大家如何使用 msbuild 命令行编译一个 UWP 程序 在有一些时候,如使用持续集成的时候就不能通过 VisualSt…
我们经常在用vs2005做项目的时候会把一个项目分成几个模块(不管是对于功能上,还是系统构架上面),为的是以后部署,还有修改维护时候的方便.这样就会带来一个问题,随着模块的增加(这里所说得每个模块就是指每个项目),我们如果依赖IDE的话,每次都得从源代码管理器读取最新得版本,进行编译.然而IDE加载得时候会加载很多必须得文件,这样就大大浪费了时间.再有就是我们不能一次都把这些项目都编译了.我们不得不重复着打开编译这样的顺序.这里也许大家会想到nant,但是nant不支持.net2.0(听说是被微…
使用 Nuget 安装 Microsoft.CodeDom.Providers.DotNetCompilerPlatform 包即可. VS2017都是用 roslyn 编译, VS2015原本的编译器 MSBuild 仍然是14版本,一些新的C#语法已经不支持编译,新的roslyn编译器,支持c# 6.0语法.它放到bin里面去是为了支持 asp.net 应用的动态编译. 通过 nuget 包 Microsoft.CodeDom.Providers.DotNetCompilerPlatform…
最近工作成果之一,特此记录. 用于打包的批处理脚本 注意设置 path/to/your/solutionfile.sln 指向vs的解决方案文件. setlocal enabledelayedexpansion set "filepath=%cd%" cd /d c:\ if not exist localzips ( mkdir localzips ) cd localzips set RootPath=%1 if "%RootPath%"=="&quo…
VS2017改用roslyn编译的,新的roslyn编译器,支持c# 6.0语法.它放到bin里面去是为了支持asp.net应用的动态编译. 它是通过nuget的包Microsoft.CodeDom.Providers.DotNetCompilerPlatform安装的,会在web.config里面配置<system.codedom><compilers>,替换掉默认的编译器. 它是通过nuget安装的包,如果你们都使用nuget来管理依赖,应该不会有问题.如果不需要roslyn,…
生成OpenCV工程需要用到CMake,所以第一步需要下载CMake软件,下载链接:CMake下载 目前最新的版本是3.7.1,这里选择下载Platform下的Windows win32-x86 ZIP,大小21M: 把下载完成的压缩包解压出来就可以了,不用安装.打开解压后的路径下-\cmake-3.7.1-win32-x86\bin\cmake-gui.exe,会弹出如下CMake窗口: 接下来就可以安装步骤一步一步生成OpenCV工程了. 1.  点击右侧"Browse Source&quo…
今天因为想要用OpenCV做图像识别,小白一个,在网上找到一个教程,但是需要配置OpenCV3.3.0的环境,于是又在网上找OpenCV3.3.0+VS2013(因为我之前已经安过了VS2013),前面的都顺利执行,但是弄到OpenCV解决方案的编译时,点击ALL_BUILD右键->生成后报错“找不到python36_d.lib”,看了好多篇博客,大概有两种方法: 1.https://blog.csdn.net/weixin_43788499/article/details/84933210 2…
程序集代码 (原) <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <VersionPrefix>0.1.23.0</VersionPrefix> <TargetFrameworks>netstandard1.;net35;net40;net45;monoandroid60;xamarinios10</TargetFrameworks> <DebugType…
上篇文章介绍了GitLab CI的持续集成配置方法,本篇文章将主要介绍NUnit的持续集成和遇到的一些坑 1.NUnit单元测试持续集成 下载NUnit.3.4.1.msi,https://github.com/nunit/nunit/releases/tag/3.4.1 在持续集成的CI服务器上,安装msi,并将安装路径从C:\Program Files (x86)改到C:\NUnit,因为shell脚本好像处理括号或者空格比较麻烦. 将之前的shell脚本的/p:Configuration=…
使用Visual Studio打开解决方案,对<网站项目>右键点击<发布>,一切都是正常的,所有宏都可用,宏参数值也是正确的. 而通过批处理脚本命令调用MSBuild.exe对解决方案编译,一切也都是正常的,所有宏都可用,宏参数值也是正确的. 但如果你通过批处理脚本命令调用MSBuild.exe对解决方案下某个Web项目进行发布操作时,你会发现,某些针对解决方案可用的宏变得不正常,不可用,宏参数值都是错误的. 例如$(SolutionDir)在某些版本的MSBuild下它的值是&q…
最近新升级了Visual Studio 2017,创建的Web项目Bin目录中多了一个叫roslyn的文件夹,该文件夹导致网站在某些服务器上发布出错 从网上搜索了一下,Roslyn是新出的动态编译工具 但是在服务器上安装.net4.6后仍然提示编译出错. 解决方法:打开解决方案NuGet包管理器,卸载一个叫“Microsoft.CodeDom.Providers.DotNetCompilerPlatform”的包,之后重新编译网站,发现Bin目录下没有roslyn文件夹了!…
https://www.cnblogs.com/whitewolf/archive/2011/07/27/2119005.html http://www.cnblogs.com/hjf1223/archive/2006/04/13/374655.html 使用CruiseControl.Net  自动从VSS服务器中检测并下载最新的源代码,然后用MsBuild对解决方案自动编译 https://blog.csdn.net/missautumn/article/details/16870783 …
理想的代码优化方式 团队日常协作中,自然而然的会出现很多重复代码,根据这些代码的种类,之前可能会以以下方式处理 方式 描述 应用时可能产生的问题 硬编码 多数新手,或逐渐腐坏的项目会这么干,会直接复制之前实现的代码 带来的问题显而易见的多,例如架构会逐渐随时间被侵蚀,例外越来越多 提取函数 提取成为函数,然后复用 提取函数,然后复用,会比直接硬编码好些,但是仍然存在大量因"例外"而导致增加参数.增加函数重载的情况 模板生成器 CodeSmith/T4等 因为是独立进程,所以对于读取用户…
protobuf 最近使用protobuf,变编译工具时遇上一点问题.现在附上解决方案 编译过程 完全参照 https://github.com/alexeyxo/protobuf-objc 编译出错 遇到如下错误 ./google/protobuf/objectivec-descriptor.pb.h:17:2: error: This file was generated by an older version of protoc which is #error This file was…
每次改动 VC 工程之后都要重新编译,每次 VS 又会生成调试数据库文件,很费时间,于是研究了一下如何在资源管理器中直接编译,还真发现了解决办法. 以下是适用 Visual Studio 2008 的注册表文件,导入系统之后右键点 .sln 文件就会出来编译的菜单了: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\VisualStudio.Launcher.sln\Shell] [HKEY_CLASSES_ROOT\VisualS…
最近在看一些算法和测试一些程序,以及帮团队测试程序,团队使用了vs开发环境创建的sln项目文件,我使用的是公司的机器,没有任何权限安装程序等操作,但是又需要编译一些程序,所以我想到了,使用MSBuild.exe进行编译. 如果你的机器上没有装有VisualStudio,那么可以使用MSBuild来build .sln或project.可以不用安装vs程序,MSBuild可以通过安装.NETFramework来安装,一般的安装路径为C:\Windows\Microsoft.NET\Framewor…
人老了,玩不转博客园的编辑器,详细信息转到:https://mp.weixin.qq.com/s/1r6YKBkyovQSMUgfm_VxBg 关键字:Github, NCC, Natasha,Roslyn, .NET Core2.0,.NET Core2.1,.NET Core2.2,.NET Core2.3, standard2.0, 动态编译,运行时脚本,高性能. ​一. 前言 对于开源贡献者,Emit和表达式树不是陌生的字眼,IL的动态特性为封装工作带来了极大的方便,会Emit的开发者可…
本文告诉大家如何通过 msbuild 编译一个项目,通过命令行编译可以输出更多的编译信息,可以用来调试自己写的编译相关方法,可以看到是哪个文件编译失败 在开始菜单可以找到 VisualStudio 的安装文件夹,基本上开发者命令行的英文名叫 Developer Command Prompt 中文名是开发者命令行 打开之后默认是 C 盘的一个路径,假如自己的项目所在文件夹是 D:\lindexi\github 需要先通过 cd 将命令行的工作路径修改为当前需要编译的路径,通过下面命令可以从 C 盘…
MSBuild 的 Task 为我们扩展项目的编译过程提供了强大的扩展性,它使得我们可以用 C# 语言编写扩展:利用这种扩展性,我们可以为我们的项目定制一部分的编译细节.NuGet 为我们提供了一种自动导入 .props 和 .targets 的方法,同时还是一个 .NET 的包平台:我们可以利用 NuGet 发布我们的工具并自动启用这样的工具. 制作这样的一个跨平台 NuGet 工具,我们能够为安装此工具的项目提供自动的但定制化的编译细节--例如自动生成版本号,自动生成某些中间文件等. 本文更…
         我们知道在Windows上我们很容易构建于MSBuild的自动化编译环境,那么在CentOS也是可以的,主要是需要Mono. 在这儿我们选择Jenkins+Gitlab+Mono在CentOS 6.5构建的环境. 1. 安装 Jenkins     Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,包括:持续的软件版本发布/测试项目. 监控外部调用执行的工作. 在CentOS中安装: sudo wget -O /etc/yum.…
1.下载mongo-c-driver源码文件 使用github来下载. git clone https://github.com/mongodb/mongo-c-driver.git 下载完之后,进入src/libbson目录下,下载`libbson的源码. git clone https://github.com/mongodb/libbson.git . 编译后的文件可以在这里下载 mongo-c-driver-win32-bin.7z mongo-c-driver-win32-bin.7z…
每日构建,对我们团队来说一个全新的概念.随着项目开发的进展,在开发过 程需要及时反馈一些BUG和功能要求的处理情况.而在这种情况下每天或隔一段时间Build一个版本,工作量还是比较大的,所以就特别有必要引入每日构建.关于每日构建,在园里有已经有很多 的文章了,特别是摩诘的<在.NET环境中实现每日构建(Daily Build)--NAnt篇>更 是从概念上和实践上手把手地介绍如果在.NET环境下实现每日构建.但很遗憾,在我实现每日构建之前没有看到这篇文章,错失了一次快速入门的机会, 不过感到庆…
 http://www.infoq.com/cn/articles/MSBuild-1 你或其他人刚刚写完了一段代码,提交到项目的版本仓库里面.但等一下,如果新提交的代码把构建搞坏了怎么办?万一出现编译错误,或者有的测试失败了,或者代码不符合质量标准所要求的底限,你该怎么办? 最不靠谱的解决方案就是寄希望于所有人都是精英,他们根本不会犯这些错误.但如果真的出现了这些问题,我们就希望发现的越早越好.最好的方式就是只要有代码提交,我们就有某种方式对它进行验证.这就是持续集成的作用. 持续集成相关的工…
在上一篇教程项目管理实践[三]每日构建[Daily Build Using CruiseControl.NET and MSBuild] 中,我们讲解了如何使用CCNET+MSBuild来自动编译项目,今天我们讲解一下怎么使用MSBuild+WebDeployment+Robocopy自动编译过和部署ASP.NET网站. 首先安装下面的三个软件: 1.MSBuild.Community.Tasks下载:http://msbuildtasks.tigris.org/files/documents/…
你或其他人刚刚写完了一段代码,提交到项目的版本仓库里面.但等一下,如果新提交的代码把构建搞坏了怎么办?万一出现编译错误,或者有的测试失败了,或者代码不符合质量标准所要求的底限,你该怎么办? 最不靠谱的解决方案就是寄希望于所有人都是精英,他们根本不会犯这些错误.但如果真的出现了这些问题,我们就希望发现的越早越好.最好的方式就是只要有代码提交,我们就有某种方式对它进行验证.这就是持续集成的作用. 持续集成相关的工具有很多.最流行的要数一款基于Java的名叫Jenkins的工具.它提供了Web界面,用…
1. 背景 最近在研究DotNetOpenAuth——OAuth的一个.NET开源实现,官方网站:http://dotnetopenauth.net/ . 从GitHub签出DotNetOpenAuth的源代码发现最新版本已到5.1,而NuGet中发布的版本只是4.3.新版中使用到了.NET 4.5的异步特性(async, await),于是决定直接用最新版. 用最新版,就要自己进行编译.用Visual Studio 2012打开解决方案文件进行编译,一次编译成功,但编译出的DotNetOpen…
最近在做一个团队项目的时候,用到了自动编译发布部署环境[也可以说是持续集成],于是顺便学习了下这个环境的搭建过程. 持续集成 持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误. 1.持续集成系统的组成 一个完整的构建系统必须包括: 1) 一个自动构建过程,包括自动编译.分发.部署和测试等. 2) 一个代码存储库,即需要版本控制软件来保…
一.MSBuild 在微软软件开发中,每日构建是最重要的过程之一,被称为微软产品开发的“心跳”.简单来看,每天构建系统将整个产品解决方案完整构建一遍,生成的目标文件和安装文件被放置在一个共享位置.接着,安装文件被自动部署到release server上,随后可以自动运行BVT(build verification test),并将所有结果寄送每个team member的信箱. 微软有一套完善的内部系统来完成整个自动化流程,以及流程管理.reporting等工作,而如果我们没有这套系统,也想实现完…
目录 1.编译前的准备工作 2.Windows下使用VS2019编译 2.1.使用cmake生成VS2019解决方案 2.2.使用msbuild工具进行编译 3.linux下编译 3.1 CentO S下基本编译环境安装 3.2 编译三方依赖库 3.3编译grpc 1.编译前的准备工作 1.下载源码 git clone https://github.com/grpc/grpc.git 2.下载依赖项,grpc的依赖项都以子模块的方式记录在third_party目录下,所以直接同步子模块即可. g…