Msbuild 如何使用TFS创建单独的web部署包

Msbuild 如何使用TFS创建单独的web部署包,msbuild,tfsbuild,Msbuild,Tfsbuild,我只需要使用TFS build创建Web部署包,不想在IIS中自动部署它 我在Build Definition->MSBuild Arguments中添加了以下两个参数 /p:CreatePackageOnPublish=true/p:DeployOnBuild=true 问题是我没有在放置位置获取ZIP文件,并且出现以下错误 C:\程序 文件\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets (1

我只需要使用TFS build创建Web部署包,不想在IIS中自动部署它

我在Build Definition->MSBuild Arguments中添加了以下两个参数

/p:CreatePackageOnPublish=true/p:DeployOnBuild=true

问题是我没有在放置位置获取ZIP文件,并且出现以下错误

C:\程序 文件\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets (1657):“MapuritoIsWebServer”任务意外失败。 System.Runtime.InteropServices.COMException(0x80005000):未知 错误(0x80005000)位于 System.DirectoryServices.DirectoryEntry.Bind(布尔throwIfFail)
位于System.DirectoryServices.DirectoryEntry.Bind()处 System.DirectoryServices.DirectoryEntry.get_IsContainer()位于 System.DirectoryServices.DirectoryEntries.CheckIsContainer()位于 System.DirectoryServices.DirectoryEntries.Find(字符串名称,字符串 schemaClassName)位于 Microsoft.Web.Publishing.Tasks.MapUriToIisWebServer.get_IisMajorVersion() 位于Microsoft.Web.Publishing.Tasks.MapuritoIsWebServer.Execute()处 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ItaskeExecutionHost.Execute() 在 Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstatedTask(ITaskeExecutionHost taskExecutionHost,TaskLoggingContext TaskLoggingContext,TaskHost taskHost、ItemBucket、TaskExecutionMode howToExecuteTask、, 布尔值(&taskResult)

可能是什么问题


现在我得到了不同的错误

错误:Web部署任务失败。(无法创建类型为“manifest”且路径为“e:\TFS\Dev\ApplicationName\Binaries\Release\u PublishedWebsites\ApplicationName\u Package\ApplicationName.SourceManifest.xml”的对象。)

错误:无法创建类型为“manifest”且路径为“e:\TFS\Dev\ApplicationName\Binaries\Release\u PublishedWebsites\ApplicationName\u Package\ApplicationName.SourceManifest.xml”的对象

错误:清单“sitemanifest”中的一个或多个条目无效

错误:网站“默认网站”中不存在应用程序“/ApplicationName”


我相信您只需要将“包”目标添加到web项目的构建中

 /t:Build;Package
我已经在tfs构建中使用该目标来生成带有包zip的_PublishedWebsite文件夹一段时间了,现在已经成功了

编辑:包目标说明 如果将web应用程序的csproj文件视为XML文件,您将看到它包括以下内容

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

它应该为您的应用程序的发布配置构建web部署包。

我也有同样的问题,唯一解决问题的是:

  • 打开IIS管理控制台
  • 转到默认网站
  • 添加名为“ApplicationName”的新应用程序
  • 再次运行msbuild。它会起作用的
  • 可能重复的


    我在Atlassian Bambol上也遇到了同样的问题,这为我解决了这个问题:从带有Visual Studio的计算机将“C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web”的内容复制到TFS生成服务器。

    这些属性会导致Web发布管道使用您的项目设置,除非您重写它们。您能告诉我们您的发布相关设置是如何在项目属性中配置的吗?“将部署包创建为ZIP文件”已被选中Domas Scot有一篇博客文章在这里描述了相同的问题:我不知道问题出在哪里,但我只取得了成功,只需添加
    /p:DeployOnBuild=true
    。您能对此进行更多解释吗?因此
    /p:CreatePackageOnPublish=true
    是不够的,我们需要调用包目标本身?
     <Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" />
    
     <DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">Package</DeployDefaultTarget>
    
     msbuild yourwebapplication.csproj /t:Package /p:Configuration=Release