5

我正在尝试使用 Jenkins(在 Windows Server 2012 上)设置构建服务器,该服务器将负责构建(使用配置转换)和打包(zip 文件)ASP.NET MVC/Web API 项目,然后将它们移动到指定位置( C:/已发布)。

基本上,我需要通过命令行使用 Visual Studio Web Publish for File System,而无需安装 Visual Studio。压缩过程可以通过 Jenkins 推迟到命令行。

通过搜索,以下步骤是我到目前为止所做的:

  1. 安装詹金斯
  2. 安装 Jenkins MSBuild 插件
  3. 将“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets”复制到我的构建服务器
  4. 已安装Windows 8 SDK
  5. 创建了从 repo 中提取源代码的 Jenkins 作业
  6. 向 MSBuild 任务添加了命令行参数......

第6步是什么难倒我。我在网上尝试了许多建议,但无法弄清楚如何获得 Visual Studio 发布命令的全部效果。

一个建议是使用发布配置文件属性作为参数:

/p:WebPublishMethod=FileSystem
/p:LastUsedBuildConfiguration=Release
/p:LastUsedPlatform=AnyCPU
/p:ExcludeApp_Data=False
/p:publishUrl=C:\Published\
/p:DeleteExistingFiles=True

但这不会将任何文件移动到c:\Published\.

4

1 回答 1

8

我需要将文件C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web从我的开发框中复制到构建服务器上的相同位置,然后属性工作正常。

除了我上面概述的步骤之外,以下是我必须执行的额外步骤才能使其正常工作:

  1. 将 Jenkins Windows 服务更改为以管理员身份登录
  2. 将文件C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web从我的开发机器复制到构建服务器上的相同位置
  3. [Environment]::SetEnvironmentVariable("EnableNuGetPackageRestore", "true.", "Machine")通过在 Powershell 中运行启用 NuGet 包还原
于 2013-06-03T15:49:02.937 回答