Web部署在TFS上发布具有nuget依赖关系的asp.net webapp

时间:2014-05-22 17:08:52

标签: tfs msbuild visual-studio-2013 nuget webdeploy

我正在尝试在TFS 2012上发布vs2013 asp.net webapp(解决方案中唯一的项目)。在任何开发人员框中,它下载,爆炸并解析nuget包(使用nuget 2.8.1)并运行Web部署发布就好了。

但是我无法在TFS盒子上复制它。 MSBuild没有找到nuget包,也没有运行Web Deploy Publish。

1。的NuGet

从csproj

调用
  <PropertyGroup>
    <PreBuildEvent>$(SolutionDir)..\..\..\tools\nuget\nuget.exe restore</PreBuildEvent>
  </PropertyGroup>

根据here的建议。没有.nuget解决方案级别目录,nuget.exe和nuget.config实现了tfs文件夹层次结构。这在开发盒上工作正常。为什么它不能在构建服务器上运行?

2。 Web部署发布

msbuild日志摘录:

Run MSBuild for Project
Initial Property Values
...
CommandLineArguments = /p:SkipInvalidConfigurations=true /p:DeployOnBuild=True /p:PublishProfile=dev01 /p:AllowUntrustedCertificate=True /p:UserName=myDomainUsername /p:Password=myPassword
....
DeployOnBuild = False
....

注意DeployOnBuild = False,不应该被参数覆盖吗?

配置:

开发者框

Visual Studio 2013更新2,webdeploy 3.6(最新),Web Deploy Publish基于.pubxml发布配置文件。

vs项目文件摘录,以防相关:

  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <PropertyGroup>
    <PreBuildEvent>$(SolutionDir)..\..\..\tools\nuget\nuget.exe restore</PreBuildEvent>
  </PropertyGroup>

构建定义

构建定义适用于解决方案(.sln)而不是项目(.csproj),参数如下:

/p:DeployOnBuild=True /p:PublishProfile=dev01 /p:AllowUntrustedCertificate=True /p:UserName=myDomainUser /p:Password=myPassword

TFS 2012专栏

安装了WebDeploy 3.6(最新版本)。

在我的方法中可能存在配置和概念错误的组合,真的很感激任何输入!

2 个答案:

答案 0 :(得分:0)

您可能需要在构建服务器上启用Package Restore。确保你有:

答案 1 :(得分:0)

Web部署发布不发布 - 按照此处MSBuild not triggering WebDeploy中的说明解决问题 - 唯一的区别是 我将Web和WebApplications目录从vs2013开发盒上的\ v12.0复制到TFS 2012上的\ v11.0