Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web部署发布在TFS上具有nuget依赖项的asp.net webapp_Tfs_Msbuild_Visual Studio 2013_Nuget_Webdeploy - Fatal编程技术网

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

Web部署发布在TFS上具有nuget依赖项的asp.net webapp,tfs,msbuild,visual-studio-2013,nuget,webdeploy,Tfs,Msbuild,Visual Studio 2013,Nuget,Webdeploy,我正在尝试在TFS 2012上发布vs2013 asp.net webapp(解决方案中唯一的项目)。在任何developer box上,它都可以下载、分解和解析nuget包(使用nuget 2.8.1),并运行WebDeployPublish 但是,我无法在TFS盒上复制该功能。MSBuild未找到nuget包,也未运行Web Deploy Publish 1。Nuget 从csproj调用 <PropertyGroup> <PreBuildEvent>$(

我正在尝试在TFS 2012上发布vs2013 asp.net webapp(解决方案中唯一的项目)。在任何developer box上,它都可以下载、分解和解析nuget包(使用nuget 2.8.1),并运行WebDeployPublish

但是,我无法在TFS盒上复制该功能。MSBuild未找到nuget包,也未运行Web Deploy Publish

1。Nuget

从csproj调用

  <PropertyGroup>
    <PreBuildEvent>$(SolutionDir)..\..\..\tools\nuget\nuget.exe restore</PreBuildEvent>
  </PropertyGroup>
注意DeployOnBuild=False,它不应该被参数覆盖吗

配置:

显影盒

Visual studio 2013更新2,webdeploy 3.6(最新版本),Web Deploy发布基于.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>
TFS 2012方框

已安装WebDeploy 3.6(最新版本)


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

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

  • 已安装Visual Studio 2013.2(无许可证要求)

Web部署发布不发布-按照此处的说明解决-唯一的区别是
我通过Web和WebApplications目录从vs2013 devs框上的\v12.0复制到TFS 2012上的\v11.0

好的,谢谢,我在服务器上启用了nuget package restore环境变量,如中所述,now nuget works。不必按照建议安装vs2013—这样做是否会让生活更轻松?(有人可能会说它不必要地膨胀了服务器。)
  <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>
/p:DeployOnBuild=True /p:PublishProfile=dev01 /p:AllowUntrustedCertificate=True /p:UserName=myDomainUser /p:Password=myPassword