首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用MSBuild.exe使用cmd行“发布”ASP.NET mvc4项目

使用MSBuild.exe使用cmd行“发布”ASP.NET mvc4项目
EN

Stack Overflow用户
提问于 2012-12-18 02:44:15
回答 4查看 104.6K关注 0票数 87

我正在寻找一个在MSBuild.exe上运行的命令,它只接受一个MVC4项目并将其发布到给定的目录。

例如,

MSBuild <solution>/<project>.csproj -publish -output=c:/folder

这显然是不正确的语法。我在试着简化我的问题。

This question谈到了构建可扩展标记语言,但我不打算做太多细节的事情。

我只是想做一个部署。

再往下走,在that question,有人提到了"MSDeploy“。我可以调查一下,但这是唯一的选择吗?我无法在服务器上安装web deploy。在这种情况下,我真正需要做的就是“发布”,并将已发布项目的内容发送到服务器/文件系统上的给定目录。

有没有我可以用的one眼线?

我必须使用MSDeploy吗?

MSDeploy是否需要在服务器上安装web deploy?

在服务器上设置web deploy不需要设置一些端口、权限和安装一些IIS附加组件吗?

我喜欢执行一些简单的东西。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-19 15:44:03

在VS2012(以及VS2010的Azure SDK中提供的发布更新)中,我们简化了web项目的命令行发布。我们已经通过使用发布配置文件做到了这一点。

在用于web项目的VS中,您可以使用发布对话框创建发布配置文件。当您创建该配置文件时,它会自动存储在您的项目中的Properties\PublishProfiles下。您可以使用创建的配置文件从命令行通过命令行发布以下内容。

msbuild mysln.sln /p:DeployOnBuild=true /p:PublishProfile=<profile-name>

如果您想在其他位置存储发布配置文件(.pubxml文件),您可以传入PublishProfile的路径。

发布配置文件是MSBuild文件。如果需要自定义发布过程,可以直接在.pubxml文件中执行此操作。

如果您的最终目标是从命令行传递属性。我会推荐以下几点。在VS中创建示例发布配置文件。检查发布配置文件,以确定需要在命令行上传递哪些MSBuild属性。仅供参考,并非所有发布方法都支持命令行发布(如FTP/FPSE)。

仅供参考,如果您正在构建.csproj/.vbproj而不是.sln,并且您正在使用VS 2012,那么您也应该传入/p:VisualStudioVersion=11.0。有关原因的更多细节,请参阅http://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspx

票数 161
EN

Stack Overflow用户

发布于 2012-12-18 22:00:08

创建如下所示的build.xml文件

启动Visual Studio命令提示符

运行msbuild build.xml

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0" DefaultTargets="Build">

  <PropertyGroup>
    <Build>$(MSBuildProjectDirectory)\Build</Build>
    <ProjectFile>MyProject.csproj</ProjectFile> 
    <ProjectName>MyProjectNameInVisualStudio</ProjectName>
    <CopyTo>$(MSBuildProjectDirectory)\CopyTo</CopyTo>
  </PropertyGroup> 

  <Target Name="Build"> 
    <RemoveDir Directories="$(Build)"/>  
    <MSBuild Projects="$(ProjectFile)" Properties="Configuration=Release;OutputPath=$(Build);OutDir=$(Build)/"></MSBuild>  
    <Exec Command="robocopy.exe  $(Build)\_PublishedWebsites\$(ProjectName) $(CopyTo) /e /is
      if %errorlevel% leq 4 exit 0 else exit %errorlevel%"/>    
  </Target>

</Project>
票数 12
EN

Stack Overflow用户

发布于 2015-05-26 01:51:01

下面的命令可以完美地工作:

msbuild Myproject.sln  /t:Rebuild /p:outdir="c:\outproject\\" /p:Configuration=Release /p:Platform="Any CPU"
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13920146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档