编程猫 加入收藏  -  设为首页
您的位置:编程猫 > 知识 > 正文

目录

1,使用MSBuild编译与使用VS编译有什么不同吗?

使用MSBuild编译与使用VS编译有什么不同吗?

vs就是调用msbuild编译的。前提是你独立用msbuild,你参数得用对,你可以和vs输出窗口(需要打开详细输出)的msbuild的命令行对照。举个例子: 1.在MS.Build.下Task为我们实现了基本的ITask信息。我们可以从这里继承开始 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FirstBuildTask {public class MyBuildTask : Microsoft.Build.Utilities.Task{private string outputFile; [Microsoft.Build.Framework.Required]public string OutputFile{get { return outputFile; }set { outputFile = value; }} public override bool Execute(){Log.LogWarning("test message:" + this.outputFile);return true;}} } 2.用VS重新加载编译或者是MSBuild控制台编译:UsingTask:定义:

2,怎样使用 MSBuild 自动编译和发布 NET 网站

  通过.NET Framework编译 C#开发用的环境是微软的Visual Studio 一般电脑不是很差很差的都可以! MSBuild是 Microsoft Build Engine 的缩写,代表 Microsoft 和 Visual Studio 的新的生成平台。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

3,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

4,使用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 。

5,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,提供了一个很好的自动化编译环境,值得研究研究:)

6,MSBuild能不能删除?

可以删除,因为不是系统文件。 MSBuild 是 Microsoft 和 Visual Studio的生成系统。它不仅仅是一个构造工具,应该称之为拥有相当强大扩展能力的自动化平台。MSBuild平台的主要涉及到三部分:执行引擎、构造工程、任务。普通用户用不到是可以删除的。 补充 MSBuild 引入了一种新的基于 XML 的项目文件格式,这种格式容易理解、易于扩展并且完全受 Microsoft 支持。MSBuild 项目文件的格式使开发人员能够充分描述哪些项需要生成,以及如何利用不同的平台和配置生成这些项。 另外,项目文件的格式还使开发人员能够创作可重用的生成规则,这些规则可以分解到不同的文件中,以便可以在产品内的不同项目之间一致地执行生成。以下各节描述了 MSBuild 项目文件格式的一些基本要素。

7,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 很多时候由于系统和驱动的兼容性不好,也会出现这样的错误,建议你换个其他版本的驱动安装,或换个其他版本的系统安装。 如果帮到你,请选为满意答案吧!

8,生成解决方案时出现msbuild.exe 应用程序错误

1、打开“ 的电脑”,进入菜单“工具”→“文件夹选项”→“文件类型,单击“新建”弹出“新建扩展名”对话框,在“文件扩展名”框中填入“exe”,接着单击“高级”,在“关联的文件类型”下拉框中选择“应用程序”,单击“确定”返回,最后单击“应用”后关闭对话框
2、如上面的方法不能解决,或应用那个按钮是灰的,那可以重启按f8选“命令提示符的安全模式”,然后在命令提示符下直接输入assoc .exe=exefile 或ftype exefile=%1%* 然后回车就好。