使用MSBuild编译与使用VS编译有什么不同吗
MSBuild简介
Visual Studio的编译引擎是 MSBuild ,它提供了一套项目文件( .csproj , .vbproj , vcxproj )的XML的Schema,用来指定如何处理和编译项目。
当然MSBuild不依赖于Visual Studio,完全可以在不安装Visual Studio的情况下使用MSBuild。比如可以从 Microsoft Build Tools 2015 下载MSBuild来编译C#。2016年3月31号微软也宣布了 Visual C++ Build Tools 2015 ,可以 下载 来编译VC++的项目。
MSBuild也是一个MIT License的开源软件,可以在Github上看到它的 仓库 。
MSBuild Toolset (ToolsVersion) 是一个任务、目标和工具的集合,指定MSBuild的行为。通常一个MSBuild的Toolset包含 microsoft.common.tasks 文件, microsoft.common.targets 文件和编译器比如 csc.exe , cl.exe 和 link.exe 。
VS2005 debug编译和msbuild编译 有什么区别
用aspnet_compiler发布网站在asp.net 2.0模型中,vs2005已经完全脱离了编译而成为了一个彻底的ide.算是一个不小的改动。其中更是取消了有关Web Application的概念,使得习惯了vs2003的人刚开始的时候会有一些摸不着头脑。下面简单说一下我在使用过程中自己总结的,算是一点经验。
新建web工程并且位置是文件系统的时候,vs2005只是帮你建好了一个sln文件,这个东西只是指引msbuild 如何进行编译的,过程是:ide 调用 msbuild ,msbuild解析sln文件,msbuild调用aspnet_compiler.exe进行网站的编译。所以aspnet_compiler.exe只是负责进行网站的编译的。
预编译的概念在 .netframework 1.1 里面就存在了,vs2003中的预编译指的是将页面对应的cs/vb文件与resx文件编译后统一集成到一个dll中放到bin目录下,将aspx文件直接拷贝过去。这样做会留下隐患,因为aspx文件就直接暴露在最后的发行包中,如果完全是codeb-behind模型还好,只能改改界面,如果采用了页面上的来生成页面,源代码就暴露了。针对这些问题,vs2005采用了一种新的模式。
请参看ASP.NET 编译工具 (Aspnet_compiler.exe) 这篇文章了解对各种文件的处理方式。
IDE发布:
vs2005中选择 生成-〉发布网站,在对话框中的操作将映射到aspnet_compiler.exe的参数中,可更新的发布对应 -u,其他选项类似,请参考上面的文章了解。
注意:发布时将忽略web.config中的debug参数,统一生成无调试信息的文件。
手工编译:
简单说来,如果是无更新发布模式编译,appcode下面的class编译成dll放在bin下,页面内容清空位置不变作占位用,同时页面被编译成一个随机名称的dll,增加一个同名.compiled文件到bin目录下,内容大概如下:
<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/Forum/AdminList.aspx" hash="6772609c3" filehash="49154463f1d6738c" flags="110000" assembly="App_Web_hmrycg3w" type="ASP.forum_adminlist_aspx">
<filedeps>
<filedep name="/Controls/footer.ascx" />
<filedep name="/Controls/header.ascx" />
<filedep name="/Forum/AdminList.aspx" />
<filedep name="/Forum/AdminList.aspx.cs" />
<filedep name="/Forum/menu.ascx" />
<filedep name="/Forum/menu.ascx.cs" />
</filedeps>
</preserve>
里面只是列出了页面上的customcontrol,这里已经完成了和masterfile的映射。这样最大限度的保护了页面的敏感信息,发布过的网站中只能看见一堆文件名了。可更新的发布模式与vs2003类似,页面就直接拷贝过来不予编译了。
讲了一堆原理,下面说一下aspnet_compiler.exe的调用方法,这是我使用的例子
我的开发目录是这样的
Project/
library/
devroot/
pubroot/
proj.sln
使用的命令如下:
aspnet_compiler -v / -p .\devroot -f .\pubroot
分析:
-v / 指明了iis的虚拟目录
-p .\devroot 表示代码实际位置
.\pubroot 指明了要发布的位置
-f 表示强制改写目标位置
你还可以用-u来进行传统意义上的预编译,-d来插入编译符号。
总的来说,aspnet_compile结合msbuild,提供了一个很好的自动化编译环境,值得研究研究:)
求教关于用 VS2010用命令行如何 编译C++工程 ?(最好有详细示例)
1.找到vs的cl.exe所在目录,在vs2010为F:\visual 2010\VC\bin,可参考。2.点击“我的电脑”进行环境变量的配置,找到"path"变量加分号后加入刚才的路径。3.重新运行cmd开启新的命令窗口,输入cl检查path设置是否生效。(只需配置一次即可,以后再次运行的时候不用再运行此命令)。4.输入vcvars32,这条命令是运行同路径下的vcvars32.bat设置它的环境变量。5.输入cl hello.cpp即可正常编译。 编译工程有两个方法:"c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" /rebuild "Release|Win32" xxxxxxxxx.sln专门的build工具:msbuild,通过开始菜单=>Microsoft Visual Studio 2010=>Visual Studio Tools=>Visual Studio Command Prompt (2010) ,启动命令行环境,执行一下msbuild
MSBuild是什么
MSBuild是 Microsoft Build Engine 的缩写,代表 Microsoft 和 Visual Studio 的新的生成平台。MSBuild 在如何处理和生成软件方面是完全透明的,使开发人员能够在未安装 Visual Studio 的生成实验室环境中组织和生成产品。
MSBuild 引入了一种新的基于 XML 的项目文件格式,这种格式容易理解、易于扩展并且完全受 Microsoft 支持。MSBuild 项目文件的格式使开发人员能够充分描述哪些项需要生成,以及如何利用不同的平台和配置生成这些项。另外,项目文件的格式还使开发人员能够创作可重用的生成规则,这些规则可以分解到不同的文件中,以便可以在产品内的不同项目之间一致地执行生成。以下各节描述了 MSBuild 项目文件格式的一些基本要素。 MSBuild 编译后生成的是.exe 可执行文件,但却不能生成.msi 安装包文件。如果想要使用MSBuild 生成安装包文件,还需要借助WiX编辑一个wxs类型的工程。
C# 语言是怎么编译的?我能配置么? MSbuild 是什么?
通过.NET Framework编译
C#开发用的环境是微软的Visual Studio
一般电脑不是很差很差的都可以!
MSBuild是 Microsoft Build Engine 的缩写,代表 Microsoft 和 Visual Studio 的新的生成平台。MSBuild 在如何处理和生成软件方面是完全透明的,使开发人员能够在未安装 Visual Studio 的生成实验室环境中组织和生成产品。MSBuild 引入了一种新的基于 XML 的项目文件格式,这种格式容易理解、易于扩展并且完全受 Microsoft 支持。MSBuild 项目文件的格式使开发人员能够充分描述哪些项需要生成,以及如何利用不同的平台和配置生成这些项。另外,项目文件的格式还使开发人员能够创作可重用的生成规则,这些规则可以分解到不同的文件中,以便可以在产品内的不同项目之间一致地执行生成。以下各节描述了 MSBuild 项目文件格式的一些基本要素。 MSBuild 编译后生成的是.exe 可执行文件,但却不能生成.msi 安装包文件。如果想要使用MSBuild 生成安装包文件,还需要借助WiX编辑一个wxs类型的工程。
简单点MSBUILD是visual c++6.0的构建工具。
msbuild怎么添加 到环境变量
msbuild怎么添加 到环境变量
MSBuild 自动编译和发布 NET 网站步骤:
准备工具:GIT版本控制(gitlab),Jenkins, msbuild
1、安装git版本控制器,提交代码。(svn好像也可以), 并生成ssh public key上传到gitlab的ssh key中(个人配置/SSH KEY)。
2、安装jenkins开源工具。
3、Jenkins安装git plugin, Msbuild插件(Manager Jenkins/Manage Plugins)
4、配置Jenkins中的git(Manager Jenkins/Configure System)在git栏中输入name和Path: git install path\cmd\git.exe
5、添加对应.NET framework version MSBuild
Name: .NET4.0
Path to MSBuild:
%system%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
6、建立.NET项目文件,并添加MSBuild文件
建立一个解决方案nonsuch.sln,里面包含一个website: nonesuch.web.
在解决方案根目录建立一个xml文件,改名为: build.targets
VS2010程序生成解决方案时出现msbuild.exe 应用程序错误 显示应用程序无法
你说的这种情况,一般都是由 系统软件、内存、引起的。1 电脑不心装上了恶意软件,或上网时产生了恶意程序,建议用360 卫士 、金山卫士等软件,清理垃圾,查杀恶意软件,完成后重启电脑,就可能解决。实在不行,重装,还原过系统,可以解决软件引起的问题。2 如果只是运行个别软件或游戏偶尔出现的,重启电脑再试,或到其他地方下载其他版本的软件重新安装。3 点 开始菜单 运行 输入 cmd 回车,在命令提示符下输入 for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1 然后 回车。然后让他运行完,应该就可能解决。4 最近电脑中毒、安装了不稳定的软件、等,建议全盘杀毒,卸了那个引发问题的软件,重新安装其他 版本,就可能解决. 再不行,重新装过系统就ok.5 电脑机箱里面内存条进灰尘,拆开机箱,拆下内存条,清洁下内存金手指,重新装回去,就可能可以了。(cqjiangyong总结的,旧电脑经常出现这样的问题)6 电脑用久了内存坏、买到水货内存、多条内存一起用不兼容等,建议更换内存即可能解决。7 很多时候由于系统和驱动的兼容性不好,也会出现这样的错误,建议你换个其他版本的驱动安装,或换个其他版本的系统安装。如果帮到你,请选为满意答案吧!
生成解决方案时出现msbuild.exe 应用程序错误
1、打开“ 的电脑”,进入菜单“工具”→“文件夹选项”→“文件类型,单击“新建”弹出“新建扩展名”对话框,在“文件扩展名”框中填入“exe”,接着单击“高级”,在“关联的文件类型”下拉框中选择“应用程序”,单击“确定”返回,最后单击“应用”后关闭对话框
2、如上面的方法不能解决,或应用那个按钮是灰的,那可以重启按f8选“命令提示符的安全模式”,然后在命令提示符下直接输入assoc .exe=exefile 或ftype exefile=%1%* 然后回车就好。