0

我正在尝试在 TFS 构建成功后开始部署。我正在向 MSBuild Arguments 提供以下参数

/P:AllowUntrustedCertificate=True /p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish /p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=WMSVC
/p:MSDeployServiceUrl= https://server.test.com
/p:DeployIisAppPath="网站" /p:用户名=用户名 /p:密码=密码

Build 运行顺利,但是 Deploy 从未真正发生过。在我的 Drop 文件夹中,添加了一个名为 _PublishedWebsites 的临时文件夹,但该文件夹的内容不会推送到 Web 服务器。

我在我的构建服务器上安装了 WebDeploy 3.0,以及 VS 2012 和 TFS 2012。我可以使用 WebDeploy 在我的本地实例上通过 VS 2012 毫无问题地发送部署。我不确定我错过了什么,但它必须是触发部署的小东西。

4

1 回答 1

1

我遇到了这个问题,我的 Bin 可以很好地构建和部署,但在 Drop 树中不会创建任何网站。尝试了几天的很多东西,最终得出了对项目文件的更改作为解决方案。

我要部署的网站最初是 VS2008 中的 WebSite 项目,后来在 VS2012 中转换为 WebApplication 项目。在 csproj 文件(和/或 vbproj 文件)中,我找到了以下部分:

<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

我用以下内容替换了它,我从一个新创建的 MVC 应用程序中收集到:

  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
  <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
  </Target>

这定义了变量并设置了构建目标,以便自动构建选择它们。不知道为什么 WebApplication 转换过程会错过这些。如果您的项目不是 VB,请确保将“VisualBasic”替换为“CSharp”。此外,您可能需要使用 v10.0 而不是 v11.0,具体取决于构建服务器的配置。

于 2014-04-17T23:16:31.943 回答