【发布时间】:2013-11-09 06:59:27
【问题描述】:
我刚刚安装了 VS 2013,从 VS 2010 升级。创建一个用于 2010 年的 Web 部署包 zip 文件。使用 VS 2013 的发布 Web 功能发布到 Web 部署包,我收到以下错误:
Web 部署任务失败。 (“清单”类型的对象和路径 'D:\dev\DMWeb\DMWebClient\obj\Test\Package\DMWebClient.SourceManifest.xml' 无法创建。了解更多信息: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXCEPTION_WHILE_CREATING_OBJECT.)
Web Publish Activity 选项卡中的详细信息显示如下:
使用 D:\dev\DMWeb\DMWebClient\Web.Test.config 转换 Web.config 进入 obj\Test\TransformWebConfig\transformed\Web.config。 Auto ConnectionString 将 Views\Web.config 转换为 obj\Test\CSAutoParameterize\transformed\Views\Web.config。 Auto ConnectionString 将 obj\Test\TransformWebConfig\transformed\Web.config 转换为 obj\Test\CSAutoParameterize\transformed\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">
任何帮助将不胜感激。
【问题讨论】:
-
这很奇怪,我不知道为什么它会插入额外的 setAcl。 IIRC 我们有一段时间没有对 setAcl 进行任何更改。你需要这个包的 setAcl 吗?如果不是,您可以通过将 MSBuild 属性 IncludeSetAclProviderOnDestination 设置为 false 来禁用它。您可以在发布配置文件(.pubxml 文件)中执行此操作。
-
说,感谢您的回答。请看下面我的回答。我有一个旧的
wpp.targets文件。删除它使其工作。 VS 2013 是否应用了它找到的任何wpp.targets文件?感谢 IncludeSetAclProviderOnDestination 提示。
标签: msdeploy visual-studio-2013 webdeploy