10

我认为问题标题几乎说明了一切,但为了清楚起见,我试图:

  1. 从命令行 (MSBuild) 构建 VS2010 ASP.NET MVC4 解决方案,指定解决方案配置(例如发布)
  2. 在此过程中为该配置应用任何 Web.config 转换
  3. 将结果输出到本地计算机上的文件夹中(没有 IIS、代理、zip 文件、FTP、包等,只是一个包含运行该网站所需的所有文件的文件夹)

近一周以来,我一直在尝试通过 Microsoft 文档(非常无用)、关于 SO 和一般谷歌搜索的其他答案来解决这个问题。我不知道我是否只是没有得到它(这完全有可能),或者 MSBuild/MSDeploy 是否真的是它目前看起来的神秘混乱。

有没有一种相当简单的方法来实现这一目标?请帮忙!

4

1 回答 1

41

如果您运行的是 VS2010:确保安装了 Azure 1.7+ SDK(即使您没有发布到 Azure,它也会将 VS2012 发布功能添加到 VS2010)

VS2012+ 内置了这些功能

msbuild ProjectFile.csproj /p:Configuration=Release ^
                           /p:Platform=AnyCPU ^
                           /t:WebPublish ^
                           /p:WebPublishMethod=FileSystem ^
                           /p:DeleteExistingFiles=True ^
                           /p:publishUrl=c:\output

或者,如果您正在构建解决方案文件:

msbuild Solution.sln /p:Configuration=Release ^ 
                     /p:DeployOnBuild=True ^
                     /p:DeployDefaultTarget=WebPublish ^
                     /p:WebPublishMethod=FileSystem ^
                     /p:DeleteExistingFiles=True ^
                     /p:publishUrl=c:\output

无论哪种方式,您还可以设置/p:PrecompileBeforePublish=true并且输出将是站点的预编译版本。

安装 Azure SDK 后,您通常会创建一个发布配置文件并简单地使用/p:PublishProfile=DeployToFolder,但我已经为您提供了手动命令行,以防您对新的发布内容不感兴趣。

于 2013-03-09T23:28:13.073 回答