zoukankan      html  css  js  c++  java
  • 在未安装Visual Studio 2012的服务器上使用MSBuild以文件系统方式发布ASP.NET MVC系统

    公司最近尝试使用亚马逊的EC2服务,需要我在EC2上进行测试环境的搭建,基本上就是利用CCNET进行系统构建,首先利用Git的ssh协议从BitBucket获取源代码(恶心的其他国家,还我BitBucket!!!),然后利用MSBuild进行编译并且以文件系统方式发布到一个特定文件夹中。

    本来以为是个很简单的事情,可是真正执行MSBuild的时候,总是报错,缺少targets什么的。原来,免得了安装Visual Studio 2012 Express,免不了安装Visual Studio 2012 Shell:

    1. Microsoft Visual Studio 2012 Shell (Isolated) Redistributable Package

    2. Microsoft Visual Studio 2012 Shell (Integrated) Redistributable Package

    先装1,再装2。

    然后就可以运行以下MSBuild命令来编译和部署Web应用程序了:

    MSBuild mysolution.sln /p:configuration=release /p:DeployOnBuild=true /p:PublishProfile=myPublishProfile.pubxml

    其中,PublishProfile参数源自:

    即在ASP.NET MVC项目文件上点右键,然后选择Publish,然后选择需要的选项,最后生成Publish Profiles。

    不出意外的话,MSBuild会编译成功。但是,编译的结果并没有根据Publish Profile的设置发布到指定目录…… 这是什么情况??

    (此处省略开着代理科学上网用Google搜索的心酸、迷惘、无助与困惑数百字,以及对其他国家派对的愤怒数千字)

    原来,虽然安装了Visual Studio Shell之后解决了targets问题,但是并没有解决全部的targets问题,还有一组targets需要存在。那就是如下面截图所示的Web文件夹里的东西。

    把Web文件夹复制到服务器上相同的位置里,再次运行MSBuild,编译后的Web应用程序就会部署到指定位置了。

    最后,再加一个备注,如果编译的是一个项目文件(e.g. .csproj)而非解决方案文件,那么MSBuild需要再增加一个参数 /p:VisualStudioVersion=11.0. 如果编译的是Visual Studio 2012创建的解决方案文件的话,就不用加这个参数了。


    理解的越多,需要记忆的就越少
  • 相关阅读:
    专题实验 Toad 用户的创建与管理( 包括 role 等 )
    专题实验 字符集(全球化支持)
    Toad 所有 菜单说明(太多)
    java 调试
    java 基础数据结构
    HeadFirst Jsp 09 (JSTL)
    HeadFirst jsp 08 无脚本JSP
    14 多线程
    Struts2配置
    Struts框架搭建时所遇到的问题
  • 原文地址:https://www.cnblogs.com/Ricky81317/p/3116269.html
Copyright © 2011-2022 走看看