我一直在使用 Jenkins/Hudson CI 来部署我的 .NET 网站项目。我一直在使用 MSbuild 插件 来构建我的项目,然后使用 xcopy 将其复制到服务器。
我注意到,如果我使用 Visual Studio 中的 发布功能,我会得到一组不同的文件。我已经完成了配置转换,但最终得到了所有 .cs 文件,并且在 WinMerge 比较中进行比较显示二进制文件不同。
因此,我想让 Jenkins 像发布功能一样工作,或者确认 xcopy 部署在功能上是相同的。
我在使用 Web Deploy 方面拥有良好的经验,并且作为 Jenkins 运行 bat 文件的最终构建步骤,其中包含:
msdeploy.exe -verb:sync -source:package=%PACKAGE% -dest:auto,ComputerName=%TARGETHOST%
您必须在构建服务器上安装 Web 部署包,并在 IIS 上安装扩展。
我使用 MSBuild Jenkins 插件来构建然后部署项目。正如其他答案中提到的,您需要安装 Web Deploy。
在 Jenkins 的项目配置页面中,您需要将以下内容添加到 Command Line Arguments 字段:
/p:Configuration=Debug /p:DeployOnBuild=true /p:PublishProfile=publishProfileName
当然,您需要首先创建发布配置文件,无论是在 VS 中还是从 IIS 中导出它,您还需要在 MSBuild Build File 字段中指定解决方案文件路径。