在构建后事件中使用命令部署 asp.net mvc 网站

Posted

技术标签:

【中文标题】在构建后事件中使用命令部署 asp.net mvc 网站【英文标题】:Deploy asp.net mvc website with command on post-build event 【发布时间】:2018-01-10 09:40:30 【问题描述】:

我想将使用 Visual Studio 构建的 mvc 网站部署到特定文件夹位置。 如何使用项目构建后事件命令完成。

项目构建时应将网站发布到特定文件夹位置。

【问题讨论】:

也许尝试使用发布功能,创建一个新的配置文件并将其部署到文件夹 我想通过构建后事件来实现。 相关:***.com/q/16246562/1207195 【参考方案1】:

两步:

    使用部署到文件系统作为发布方法为您的项目创建发布配置文件 在您的 postbuild 事件中调用 msbuild.exe,并使用 DeployOnBuild=true 参数指定您的发布配置文件。

【讨论】:

嗨,我做了一个,但事情是在构建项目时它不会在触发构建后事件后停止构建。它挂起并且没有完成构建。必须手动取消构建。 调用 "$(MSBuildBinPath)\msbuild.exe" "$(ProjectDir)test.csproj" /p:DeployOnBuild=true /p:Configuration=Debug /p:Platform=AnyCPU /p:PublishProfile =酒吧 在开始构建时不会结束构建过程 您可能有一些资源仍然被锁定在 Visual Studio 构建中。但我必须说这种情况不是很常见......我的意思是,对任何请求的构建使用发布版本。无论如何都不是标准行为。另外,它是一个冗余构建(一个用于调试,一个用于发布)。创建一个指向 msbuild 命令的外部工具可能更明智。【参考方案2】:

我假设项目正在成功构建并已解决所有外部引用。

1.首先在 web 项目中为目录设置目标位置,如下图所示:

这是可选的,但比一次又一次地从构建路径更改调试/发布要好。

2。在构建后事件中添加如下内容:

copy "$(ProjectDir)\bin\*.*" "c:\check\" 

希望对你有帮助。

更新

这是asp.Net mvc Web项目还是网站? Web 项目可以像第 1 步一样将输出路径设置为 bin。如果您不希望第 2 步中的命令需要编译代码的路径作为第一个参数和需要复制的路径作为第二个参数,无论它们在哪里。它使用与 DOS 和 Linux 一样古老的 copy 命令。参考 https://technet.microsoft.com/en-in/library/bb490886.aspx 用于复制命令。

【讨论】:

bin 不包含相关的发布内容。需要获取发布内容。想要发布该网站。 bin 文件夹不包含视图脚本等。用于发布网站的相关项目 bin 不包含相关的发布内容。需要获取发布内容。想要发布该网站。 bin 文件夹不包含视图脚本等。用于发布网站的相关项目。正如我在调试或构建项目时我想将网站发布到文件夹的问题中提到的那样。 这是asp.Net mvc Web项目还是网站? Web 项目可以像第 1 步一样将输出路径设置为 bin。如果您不希望第 2 步中的命令需要编译代码的路径作为第一个参数和需要复制的路径作为第二个参数,无论它们在哪里。 asp.net mvc web 项目。输出路径设置为 bin,但不包含需要发布网站的内容。我想获取发布网站所需的所有内容。 只要尝试将编译项目的路径放在那里,无论是调试还是发布相应的源代码。

以上是关于在构建后事件中使用命令部署 asp.net mvc 网站的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET MVC 在 Azure Kudu 部署期间运行 Gruntfile.js 作为构建的一部分

Azure 部署后 ASP.NET Core MVC webapp 错误

.NET ----记Docker部署asp.net mvc项目

在 TFS 2010 构建服务器中预编译 asp.net MVC 网站

调试 ASP.NET MVC 应用程序时避免部署

部署后 ASP.NET MVC 4 代码首先迁移