我只需要使用TFS构建创建Web部署包,不希望在IIS中自动部署它。

我在构建定义中添加了以下两个参数 - > msbuild参数

/ p:createpackageonpublish= true / p:deployonbuild= true

probelm是我没有将zip文件放在下降位置并获得下面的错误。

c:\ program 文件\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ web \ microsoft.web.publishing.targets (1657):“MapUriitoIISWebServer”任务意外失败。 system.runtime.interopservices.comperxception(0x80005000):未知 错误(0x80005000)在 system.directoryservices.directoryentry.bind(boolean throwfiffail)
在system.directoryservices.directoryentry.bind() system.directoryservices.directoryentry.get_iscontainer() system.directoryservices.directoryentries.checkiscontainer() system.directoryservices.directoryentries.find(字符串名称,字符串 SchemaclassName)at. Microsoft.Web.Publishing.tasks.mapuritoiiswebserver.get_iismajorversion() 在Microsoft.Web.Publishing.Tasks.mapuritoiiswebserver.execute()AT Microsoft.Build.Backend.TaskexecutionHost.Microsoft.Build.Backend.itAskexecutionHost.execute() 在 Microsoft.Build.Backend.TaskBuilder.executeInstantiationTask(ItaskexecutionHost. taskexecutionhost,taskloggingcontext taskloggingcontext,taskhost TaskHost,ItemBucket Bucket,TaskexeCutionMode HowoExecuteTask, 布尔和TaskResult)

是什么问题?


现在我得到了不同的错误

错误:Web部署任务失败。(类型'清单'和path'e:\ tfs \ dev \ applicationname \ binaries \ seaultn_publistwebsites \ applicationname_package \ applicationname.sourcemanifest.xml'无法创建。)

错误:类型“清单”和path'e:\ tfs \ dev \ applicationname \ binaries \ seaseast_publistwebsites \ applicationname_package \ applicationname.sourcemanifest.xml'无法创建。

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

错误:站点“默认网站”中不存在应用程序'/ applicationname'。

有帮助吗?

解决方案

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

 /t:Build;Package
.

我一直在我的TFS构建中使用该目标,以便在同时使用包Zip生成_publisedWebsite文件夹。

编辑:包目标的说明 如果将Web应用程序视为XML文件的CSProj文件,则会看到它包括以下

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

这包括一堆Web目标进入构建过程。打开此文件打开,然后在底部看到它又包括

 <Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" />
.

此文件包含MSBuild的Web部署过程的定义。您将看到它声明了一个变量,以表示要在部署的“package”中调用的“目标”

 <DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">Package</DeployDefaultTarget>
.

如果您进一步读取此文件,它会告诉您封面下的打包和部署工作以及您可以操作的包装和目标集合如何操纵以自定义您的构建。

长话短说,但如果你打电话

 msbuild yourwebapplication.csproj /t:Package /p:Configuration=Release 
.

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

其他提示

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

  1. 打开IIS管理控制台
  2. 转到默认网站
  3. 添加名为'applicationname'的新应用程序
  4. 再次运行msbuild。它将起作用。

msbuild deployonbuild= true未发布

我对亚斯西亚竹子有同样的问题,这为我修复了它:从带有Visual Studio的机器复制“C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ V10.0 \ Web的内容“到TFS构建服务器。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top