gpt4 book ai didi

msbuild - 如何使用 TFS 创建单独的 Web 部署包

转载 作者:行者123 更新时间:2023-12-02 16:09:40 25 4
gpt4 key购买 nike

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

我在“构建定义”->“MSBuild Arguments”中添加了以下两个参数

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

问题是我没有在放置位置获取 ZIP 文件并收到以下错误。

C:\ProgramFiles\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(1657): The "MapUriToIisWebServer" task failed unexpectedly.System.Runtime.InteropServices.COMException (0x80005000): Unknownerror (0x80005000) atSystem.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)
at System.DirectoryServices.DirectoryEntry.Bind() atSystem.DirectoryServices.DirectoryEntry.get_IsContainer() atSystem.DirectoryServices.DirectoryEntries.CheckIsContainer() atSystem.DirectoryServices.DirectoryEntries.Find(String name, StringschemaClassName) atMicrosoft.Web.Publishing.Tasks.MapUriToIisWebServer.get_IisMajorVersion()at Microsoft.Web.Publishing.Tasks.MapUriToIisWebServer.Execute() atMicrosoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()atMicrosoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHosttaskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHosttaskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask,Boolean& taskResult)

可能是什么问题?

<小时/>

现在我遇到了不同的错误

error : Web deployment task failed.(Object of type 'manifest' and path 'e:\TFS\Dev\ApplicationName\Binaries\Release_PublishedWebsites\ApplicationName_Package\ApplicationName.SourceManifest.xml' cannot be created.)

error : Object of type 'manifest' and path 'e:\TFS\Dev\ApplicationName\Binaries\Release_PublishedWebsites\ApplicationName_Package\ApplicationName.SourceManifest.xml' cannot be created.

error : One or more entries in the manifest 'sitemanifest' are not valid.

error : Application '/ApplicationName' does not exist in site 'Default Web Site'.

最佳答案

我相信您只需将“Package”目标添加到您的 Web 项目构建中即可。

 /t:Build;Package

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

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

<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 部署过程的定义。您将看到它声明了一个变量来表示要在 Deploy 上调用的“目标”为“Package”

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

如果您进一步阅读此文件,它将让您了解打包和部署在幕后如何工作,以及您可以操作哪些属性和目标来自定义构建。

长话短说,如果你打电话

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

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

关于msbuild - 如何使用 TFS 创建单独的 Web 部署包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9617767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com