【问题标题】:Web Deploy Publish asp.net webapp with nuget dependencies on TFSWeb 部署在 TFS 上发布具有 nuget 依赖关系的 asp.net webapp
【发布时间】:2014-07-11 20:47:47
【问题描述】:

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

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

1.努吉特

从 csproj 调用

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

按照here 中的建议。没有 .nuget 解决方案级目录,nuget.exe 和 nuget.config 位于 tfs 文件夹层次结构中。这在开发盒上运行良好。为什么它在构建服务器上不起作用?

2。网络部署发布

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(最新)。

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

【问题讨论】:

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


    【解决方案1】:

    您可能需要在构建服务器上启用包还原。确保您拥有:

    【讨论】:

    • 好的,谢谢,我在服务器上启用了 nuget 包还原环境变量,如 bartwullems.blogspot.com.es/2013/07/… 中所述,现在 nuget 可以工作了。不必按照建议安装 vs2013 - 这样做通常会让生活更轻松吗? (有人可能会说它不必要地使服务器膨胀。)
    【解决方案2】:

    Web Deploy Publish not publishing - 按照MSBuild not triggering WebDeploy 中的说明解决它 - 唯一的区别是 我将 Web 和 WebApplications 目录从 vs2013 devs 框上的 \v12.0 复制到 TFS 2012 上的 \v11.0

    【讨论】:

      猜你喜欢
      • 2016-08-20
      • 1970-01-01
      • 2017-10-09
      • 2016-10-16
      • 1970-01-01
      • 2020-09-06
      • 1970-01-01
      • 1970-01-01
      • 2015-10-11
      相关资源
      最近更新 更多