2

我正在尝试部署 ClickOnce 应用程序。当服务器刚刚安装了.Net 2.0(没有SP)时,它以前工作过。最近服务器上安装了 3.5SP1,现在 ClickOnce 失败并出现以下错误:

值不在System.Deployment内的预期范围内。

以下是 MSDN 论坛上发布的信息(那里的答案对我来说通常是命中或错过)与调用堆栈:

它在 VS 2005 w/SP1 中,我尝试更改发布到的路径、更改安装 URL、更改程序集名称、手动控制版本、运行 mage -cc、手动删除 %userprofile%\AppData\Local 中的所有应用程序数据\Apps 甚至完全更改部署服务器,但仍然出现相同的错误:

错误详细信息 在此操作期间检测到以下错误。* [3/30/2009 5:35:37 PM] System.ArgumentException - 值不在预期范围内。- 来源:System.Deployment - 堆栈跟踪:在 System.Deployment.Application.ComponentStore.LockApplicationPath(DefinitionAppId definitionAppId) 在 System.Deployment 的 System.Deployment.Internal.Isolation.IStore.LockApplicationPath(UInt32 Flags, IDefinitionAppId ApId, IntPtr& Cookie) System.Deployment.Application.FileDownloader.PatchFiles(SubscriptionState subState) 在 System.Deployment.Application.FileDownloader.Download(SubscriptionState subState) 在 System.Deployment.Application.Application.SubscriptionStore.LockApplicationPath(DefinitionAppId definitionAppId)。

任何帮助都将不胜感激..

参考论坛在这里

4

5 回答 5

3

我有一个类似的问题。

对我来说,解决方案是如果发布路径中有 & 符号,ClickOnce 就会出错。当我发布到我们研发部门的文件夹中时,即“\serverName\r&d\”,这让我很伤心,并且给了我与您相同的无法交流的“价值不在预期范围内”看到。

我不知道这是否能解决你的问题,但我觉得有必要提出建议。

于 2009-04-07T14:19:22.270 回答
2

最后,我解决问题的唯一方法是创建一个全新的项目并从每个表单复制代码,然后发布。

Jonez:不幸的是,移动我的用户个人资料会很麻烦,而且在我看来,这对于解决发布问题来说是一种过大的杀伤力。

Gregory:安装将因该错误而失败。我尝试发布到新位置(不同的物理服务器),但问题仍然存在,我确认在任一路径中都没有使用 & 符号。

于 2009-04-07T21:24:50.563 回答
1

如果您正在寻找一个快速而肮脏的解决方案,它在 95% 的时间内都可以解决 System.Deployment 问题,请删除并创建一个新的用户配置文件。请务必在执行此操作之前备份任何有价值的数据,例如桌面、收藏夹、“我的文档”、“我的图片”、Outlook 文件等。

我还看到人们删除整个本地设置目录来解决问题。请注意,此目录有时包含 Outlook .pst 文件。

请注意,您可能会通过执行这些修复来影响其他应用程序,并且这些影响有时是不可见的。这些解决方案显然并不理想,但这些都是微软提供给我的解决方案。

祝你好运。

于 2009-04-03T16:44:08.447 回答
1

我刚刚遇到了这个错误,并且能够通过简单地卸载然后在用户计算机上重新安装应用程序来解决它。

于 2010-05-25T14:41:52.973 回答
0

您是否更改了应用程序本身的目标平台?更重要的是,您的开发机器上是否安装了 .NET 3.5 SP-1?

当您的引用不匹配时会发生此错误。因此,您的部署需要一个版本,但正在安装它的机器具有不同的版本。如果您有循环引用,也会发生这种情况。

于 2010-05-25T18:39:21.210 回答