Visual Studio 2013 Web部署失败

时间:2013-10-29 21:45:24

标签: msdeploy visual-studio-2013 webdeploy

我刚刚安装了VS 2013,从VS 2010升级。创建一个曾经在2010年工作的Web部署包zip文件。使用VS 2013的发布Web功能发布到Web Deploy Package,我收到以下错误:

  

Web部署任务失败。 (类型'清单'和路径的对象   'd:\ dev的\ DMWeb \ DMWebClient \ OBJ \测试\包\ DMWebClient.SourceManifest.xml'   无法创建。了解更多信息:   http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXCEPTION_WHILE_CREATING_OBJECT。)

“Web发布活动”选项卡中的详细信息显示以下内容:

  

使用D:\ dev \ DMWeb \ DMWebClient \ Web.Test.config转换Web.config   进入obj \ Test \ TransformWebConfig \ transformed \ Web.config。   Auto ConnectionString将Views \ Web.config转换为   OBJ \测试\ CSAutoParameterize \转化\查看\ Web.config文件。   Auto ConnectionString将obj \ Test \ TransformWebConfig \ transformed \ Web.config转换为   OBJ \测试\ CSAutoParameterize \转化\ Web.config中。

     

将所有文件复制到下面的临时位置以进行包/发布:obj \ Test \ Package \ PackageTmp。

     

打包到D:\ dev \ DMWeb \ DMWebClient \ _ obj \ Test \ Package \ DMWebClient.zip。

     

C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ Web \ Microsoft.Web.Publishing.targets(3883,5):

     

错误ERROR_EXCEPTION_WHILE_CREATING_OBJECT:Web部署任务失败。 (类型'清单'和路径的对象   无法创建'D:\ dev \ DMWeb \ DMWebClient \ obj \ Test \ Package \ DMWebClient.SourceManifest.xml'。

     

了解更多信息:   http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXCEPTION_WHILE_CREATING_OBJECT。)

     

包裹失败。

在VS 2010中,我不得不以管理员身份运行它以进行部署工作,我也是这样做的。我还尝试将项目文件夹的完全控制权限授予NETWORK SERVICE,LOCAL SERVICE,Authenticated Users和我。

Package 文件夹中,有 PackageTmp 文件夹(看起来不错)和 DMWebClient.SourceManifest.xml 文件,以及而已。在VS 2010中,那里有更多文件。

DMWebClient.SourceManifest.xml 包含:

<?xml version="1.0" encoding="utf-8"?>
<sitemanifest>
  <IisApp path="D:\dev\DMWeb\DMWebClient\obj\Test\Package\PackageTmp" />
  <setAcl path="D:\dev\DMWeb\DMWebClient\obj\Test\Package\PackageTmp" setAclResourceType="Directory" />
  <setAcl path="D:\dev\DMWeb\DMWebClient\obj\Test\Package\PackageTmp" setAclUser="anonymousAuthenticationUser" setAclResourceType="Directory" />
  <setAcl path="D:\dev\DMWeb\DMWebClient\obj\Test\Package\PackageTmp\App_Data" setAclResourceType="Directory" setAclAccess="Write" />
  <setAcl path="D:\dev\DMWeb\DMWebClient\obj\Test\Package\PackageTmp/DMWeb.config" setAclResourceType="File" setAclAccess="Read,Write" />
</sitemanifest>

在VS 2010中,包含 DMWeb.config 的最后一行不存在。最重要的是,它的路径是错误的。它应该在 App_Data 文件夹下。 DMWeb.config Web.config 中指定,如下所示:

<appSettings file="DMWeb.config">

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:6)

如果项目中的任何文件已从文件系统中移动,删除或重命名,以致Visual Studio不知道在哪里找到它们,也会发生这种情况。

答案 1 :(得分:5)

我的错误完全相同:

  

C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ V12.0 \网络\ Microsoft.Web.Publishing.targets   (3883):Web部署任务失败。 ('manifest'类型的对象和   路径   'd:\ B \ 280 \ Binaries_PublishedWebsites \项目名\ ProjectName.SourceManifest.xml'   无法创建。了解更多信息:   http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXCEPTION_WHILE_CREATING_OBJECT。)

我发现的原因是在ProjectName.SourceManifest.xml文件中。

有一行:<appHostConfig path="Default Web Site/ProjectName" />

如果构建机器上不存在此Web应用程序和站点,则会发生错误。一旦我在同一个站点上创建了一个具有相同名称的虚拟webapp站点,它就构建了!

通过使用MsBuild参数删除该部分来解决:/ p:IncludeIisSettings = false / p:IncludeAppPool = false(我将那些2设置为true,因此只有在它们为true时才适用)

答案 2 :(得分:2)

发现我有一个来自VS 2010的旧.wpp.targets文件,它被称为~DMWebClient.wpp.targets。在VS 2010中,通过重命名它,它将忽略它而不应用它。看起来VS 2013会应用任何.wpp.targets文件而不管文件名。

通过删除该文件,Web部署将再次运行。

答案 3 :(得分:2)

我想补充一点,因为没有其他答案解决了我的问题,尽管可能与Lightswitch Web Deploy有关,而不是ASP.NET Web Deploy(尽管OP没有指定哪个)。

标准Lightswitch模板解决方案中有三个项目。其中两个可能被命名为lightswitchapp.HTMLClientlightswitchapp.Server。这些都不应该部署!您应该部署第三个项目lightswitchapp

我遇到了这样的错误,导致我进入了这个页面。

  

Web部署任务失败。 (无法创建类型'manifest'和路径'manifest xml hidden'的对象。请访问:http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXCEPTION_WHILE_CREATING_OBJECT了解详情。)

答案 4 :(得分:1)

关于Lightswitch Web Deploy 的上述优秀答案...无法在任何地方找到任何相关信息......一直认为MS故意破坏了这一点,因为他们不想再支持LightSwitch了... 在任何情况下,一旦您完成从LightSwitch模板发布主项目的步骤,如果您推送到本地IIS,则会出现关于发布参数的新问题。 对于所有挣扎的人...首先安装

  • httpPlatformHandler_amd64.msi
  • WebDeploy_amd64_en-US.msi

然后,确保“Web部署代理服务”作为服务运行 然后,在Visual Studio中(我在VS2015社区中),在向导的“发布设置”选项卡上,确保您有类似这样的内容:

  1. 服务网址: http://localhost/MSDEPLOYAGENTSERVICE
  2. 网站/应用: 默认网站\ trax01
  3. 其中trax01是在默认网站下运行的网络应用程序的名称(请注意“trax01”之前的反斜杠正斜杠相比较设置的标签。

    希望它可以帮助别人,因为这东西吃了我的肝脏! :)