Gan*_*sun 6 msbuild tfsbuild tfs2010
我只需要使用TFS构建创建Web Deployement包,并且不希望在IIS中自动部署它.
我在Build Definition - > MSBuild Arguments中添加了以下两个参数
/ p:CreatePackageOnPublish = true/p:DeployOnBuild = true
问题是我没有在丢弃位置获取ZIP文件并得到以下错误.
C:\ Program Files\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets(1657):"MapUriToIisWebServer"任务意外失败.System.Runtime.InteropServices.COMException(0x80005000):
位于系统的System.DirectoryServices.DirectoryEntry.get_IsContainer()的System.DirectoryServices.DirectoryEntry.Bind()处的System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail)中的未知错误(0x80005000)位于Microsoft.Web.Publishing.Tasks.MapUriToIisWebServer.Execute的Microsoft.Web.Publishing.Tasks.MapUriToIisWebServer.get_IisMajorVersion()的System.DirectoryServices.DirectoryEntries.Find(String name,String schemaClassName)中的.DirectoryServices.DirectoryEntries.CheckIsContainer() )在Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()在Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost,TaskLoggingContext taskLoggingContext,taskHost taskHost,ItemBucket桶,TaskExecutionMode howToExecuteTask,布尔逻辑taskResult)
可能是什么问题?
现在我得到了不同的错误
错误:Web部署任务失败.(无法创建"清单"类型的对象和路径'e:\ TFS\Dev\ApplicationName\Binaries\Release_PublishedWebsites\ApplicationName_Package\ApplicationName.SourceManifest.xml'.)
错误:无法创建"清单"类型的对象和路径"e:\ TFS\Dev\ApplicationName\Binaries\Release_PublishedWebsites\ApplicationName_Package\ApplicationName.SourceManifest.xml".
错误:清单'sitemanifest'中的一个或多个条目无效.
错误:站点"默认网站"中不存在应用程序"/ ApplicationName".
我相信您只需要将"包"目标添加到Web项目的构建中.
/t:Build;Package
Run Code Online (Sandbox Code Playgroud)
我一直在我的tfs构建中使用该目标,使用包zip生成_PublishedWebsite文件夹一段时间后成功.
编辑:包目标的说明如果您将Web应用程序的csproj文件看作XML文件,您将看到它包含以下内容
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
Run Code Online (Sandbox Code Playgroud)
这包括构建过程中的一堆Web目标.破解这个文件打开,在底部你会看到它反过来包括
<Import Project="..\Web\Microsoft.Web.Publishing.targets" Condition="Exists('..\Web\Microsoft.Web.Publishing.targets')" />
Run Code Online (Sandbox Code Playgroud)
此文件包含MSBuild的Web部署过程的定义.您将看到它声明一个变量来表示要在Deploy上调用的"目标"为"Package"
<DeployDefaultTarget Condition="'$(DeployDefaultTarget)'==''">Package</DeployDefaultTarget>
Run Code Online (Sandbox Code Playgroud)
如果您进一步阅读此文件,它将让您了解打包和部署的工作原理以及您可以操作以定制构建的属性和目标集.
如果你打电话,长话短说
msbuild yourwebapplication.csproj /t:Package /p:Configuration=Release
Run Code Online (Sandbox Code Playgroud)
它应该为您的应用程序的Release配置构建Web部署包.
归档时间: |
|
查看次数: |
9601 次 |
最近记录: |