ClickOnce错误:值不在预期范围内

时间:2009-07-22 15:46:14

标签: .net clickonce

在针对特定用户的所有ClickOnce应用程序启动时出现此错误。这在版本升级后开始发生(但不会发生在其他任何人身上)。

我已经尝试过随后更改版本号,添加/删除,注册表清理,清除Local Settings \ Apps文件夹等...仍然没有运气。

This article指向用户个人资料损坏,但我重新创建此用户不是一个选项。关于清理这个问题还有其他想法吗?

 PLATFORM VERSION INFO
    Windows             : 5.1.2600.196608 (Win32NT)
    Common Language Runtime     : 2.0.50727.3082
    System.Deployment.dll       : 2.0.50727.3053 (netfxsp.050727-3000)
    mscorwks.dll            : 2.0.50727.3082 (QFE.050727-3000)
    dfdll.dll           : 2.0.50727.3053 (netfxsp.050727-3000)
    dfshim.dll          : 2.0.50727.3053 (netfxsp.050727-3000)

SOURCES
    Deployment url          : file:///C:/Documents%20and%20Settings/<username>/Start%20Menu/Programs/<programname>/<programname>.appref-ms%7C

ERROR SUMMARY
    Below is a summary of the errors, details of these errors are listed later in the log.
    * Activation of \\NDP13\C\Documents and Settings\<username>\Start Menu\Programs\<programname>\<programname>.appref-ms| resulted in exception. Following failure messages were detected:
        + Value does not fall within the expected range.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
    No transaction error was detected.

WARNINGS
    There were no warnings during this operation.

OPERATION PROGRESS STATUS
    * [7/22/2009 10:35:30 AM] : Activation of \\NDP13\C\Documents and Settings\<username>\Start Menu\Programs\<programname>\<programname>.appref-ms| has started.

ERROR DETAILS
    Following errors were detected during this operation.
    * [7/22/2009 10:35:30 AM] System.ArgumentException
        - Value does not fall within the expected range.
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore(UInt32 Flags, IntPtr hToken, Guid& riid)
            at System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore()
            at System.Deployment.Application.ComponentStore..ctor(ComponentStoreType storeType, SubscriptionStore subStore)
            at System.Deployment.Application.SubscriptionStore..ctor(String deployPath, String tempPath, ComponentStoreType storeType)
            at System.Deployment.Application.SubscriptionStore.get_CurrentUser()
            at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
            at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

COMPONENT STORE TRANSACTION DETAILS
    No transaction information is available. 

16 个答案:

答案 0 :(得分:44)

你可以试试这个:

rundll32 %windir%\system32\dfshim.dll CleanOnlineAppCache

答案 1 :(得分:20)

我从控制面板上卸载了应用程序,然后重新安装,这为我解决了问题。

答案 2 :(得分:11)

我在Windows 7 x64计算机上也遇到过这个错误。我终于能够通过完全删除注册表中的任何引用(但这还不够)然后清除%user%\AppData\Local\Apps来正确安装我的ClickOnce应用程序。

答案 3 :(得分:9)

重复删除该文件夹并尝试重新安装后,问题神秘地消失了。也许那里也有重新启动。

答案 4 :(得分:9)

我意识到这是一个老问题,但我偶然发现了同样的问题并找到了一个不同的解决方案:原因是“&amp;”在ClickOnce网络安装路径中。 Microsoft已确认此问题并声明他们无法解决此问题:Microsoft Bug Report

答案 5 :(得分:5)

简单修复步骤:

1)从控制面板卸载

2)删除"2.0"中的%user%\AppData\Local\Apps文件夹。 您现在应该能够重新安装

答案 6 :(得分:3)

在对此错误进行了几个小时的故障排除后,我发现在我的情况下,这是因为我尝试从映射的网络驱动器而不是 UNC路径运行安装程序。第一次运行安装程序时,它工作正常。但是如果再次运行它,则会出现以下错误:

Cannot Start Application

浏览错误详细信息,您会发现非常模糊的错误:

enter image description here

如果我改为从UNC路径运行应用程序\\MyServer\MyShare\Deploy...那么它运行得很好,始终如一。

经过进一步调查,听起来这里发生的事情是安装程序正在验证(出于安全原因)它是从授权部署URL运行的,如*.application部署清单中所指定的那样。 / p>

enter image description here

由于当前路径(映射驱动器)与UNC路径不同,因此安装失败并删除程序。请注意错误日志中路径之间的差异:

enter image description here

那么错误的真正含义是“警告!无法安装应用程序,因为部署URL与部署清单中指定的提供程序URL不匹配。”

嗯,这样可以节省我很多小时的故障排除! :-)

答案 7 :(得分:2)

我解决了我的异常

System.ArgumentException
    - Value does not fall within the expected range.
    - Source: System.Deployment

检查引用是否具有复制Local= true。例如,我的问题是Office引用为true。当它试图复制它时,发生了冲突,因此无法打开该程序。希望这能解决你的问题。

答案 8 :(得分:1)

删除%user%\AppData\Local\Apps\2.0\中的所有内容并且有效。

答案 9 :(得分:0)

奇怪的是,我遇到了同样的问题,只需以另一个用户身份登录并安装/运行应用程序即可解决问题。当我退出然后以原始用户身份登录时,它再次工作。

答案 10 :(得分:0)

我的问题是由csproj文件的更改引起的。 对程序集的引用已更改为:

  

HintPath&GT; .. \文件\

  

HintPath&GT;   .. \   .. \文件\

在清单文件中添加了依赖项xml元素。

编辑csproj文件并发布,修复了清单文件。

答案 11 :(得分:0)

我一直在为这个问题寻找一个干净的解决方案。我可以通过反复试验来修复它几次。最后,我能够确定问题。我想在这里分享它。

上面的错误告诉它在部署文件夹中找不到匹配的文件。

如果您在更新检查时遇到此问题,请执行以下操作。

  1. 从部署中下载 application.exe.manifest 文件 工作
  2. 比较当前版本的 application.exe.manifest 文件     与旧的。
  3. 查找添加/删除/更改的任何参考。如果     你看到任何可疑的东西,手动编辑/回滚那部分内容     显示和尝试,大多数情况下它会起作用。
  4. 如果是新上传

    检查您在部署文件夹中标记为'copy local = true'的所有程序集,并在上传后检查其大小。

    因为' copy local = false'程序集将被视为clickonce引擎中的先决条件。大多数应用程序启动问题都是从那里开始的。

答案 12 :(得分:0)

多次处理过这个错误,但是今天它停止了一切并给我们带来了巨大的问题。我无法理解。我在微软公开了一个关键的支持案例,在我们的第一个电话中,通读了错误日志,我发现了它。

我的解决方案有几个项目。我们的主要程序是一个,然后有一个共同的DLL。我在版本12中更改了Excel(Microsoft.Office.Interop.Excel)的公共dll中的引用,并由于调试和框架兼容性的其他问题而升级到v15。然后,我做了一些工作后释放了。

我在发布后注意到的是我还没有在我的主项目中升级Excel dll,因为它也有一些参考。好吧,即使我将其升级到v15后,问题仍然存在。就在那时我打电话给微软。

在我们第一次打电话后,当应用程序启动失败时,我注意到错误日志中有几行。

* [3/12/2018 2:10:57 PM] : Detecting dependent assembly Microsoft.Vbe.Interop, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C, processorArchitecture=msil using Microsoft.Vbe.Interop, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=msil.
* [3/12/2018 2:10:57 PM] : Detecting dependent assembly office, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C using office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c.
* [3/12/2018 2:10:57 PM] : Detecting dependent assembly office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71E9BCE111E9429C, processorArchitecture=msil using office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=msil.

注意中间线如何显示版本12.0.0.0?好吧,我很困惑。所以我开始寻找任何其他办公室参考。我发现我们的主程序只引用了Office.dll和Interop.Word dll。我删除了它们并读了对v15的Word interop dll的引用,然后我再次发布了应用程序。

它仍然无效,但是一旦我卸载了应用程序然后重新安装,一切都很好。一旦我解决了问题,那些尚未升级的人就没有升级问题。尝试升级的人必须卸载并重新安装。

谢天谢地,微软没有收取任何费用就结案了。)

希望这有助于其他人。

答案 13 :(得分:0)

我有一个客户在安装我们的VSTO插件MSI,我们看到了。

System.ArgumentException:值不在预期范围内。在System.Deployment.Internal.Isolation.IsolationInterop.GetUserStore(UInt32标志,IntPtr hToken,Guid和riid)上

在检查了他们的事件日志后,对我来说很明显他们的用户配置文件有问题。他们重建了用户个人资料,并解决了该问题。

答案 14 :(得分:0)

我尝试了一个简单的配置。转到项目->属性->应用程序->

检查图标和维护,选择选项具有默认配置的嵌入式清单

祝你好运

答案 15 :(得分:0)

我在新的 Win 10 版本上安装时遇到了这个问题。将目标框架从 .NET Framework 2.0 更改为 .NET Framework 4.5,问题已解决。