“价值不在预期范围内”ClickOnce部署

时间:2012-03-14 15:03:59

标签: c# vb.net clickonce

我已经使用了几个月的ClickOnce应用程序,但最近开始在部署最新版本时遇到错误。在这个最新版本中,我添加了一个我之前没有使用的DLL的引用(FTD2XX_NET.dll如果相关),并怀疑这与问题有关,但我无法弄清楚如何修复它。

正在部署的实际项目引用了另一个库项目,该项目引用了DLL(它引用了其他DLL,但它已经工作了几个月但它们没有更改)。关注these threads我尝试删除“本地设置/应用”文件夹并重新启动多次,以及重新创建项目并部署到其他位置。多台计算机上存在错误,因此我不怀疑它的用户配置文件损坏。这是我给出的完整错误:

PLATFORM VERSION INFO
    Windows             : 5.1.2600.196608 (Win32NT)
    Common Language Runtime     : 4.0.30319.261
    System.Deployment.dll       : 4.0.30319.1 (RTMRel.030319-0100)
    clr.dll             : 4.0.30319.261 (RTMGDR.030319-2600)
    dfdll.dll           : 4.0.30319.1 (RTMRel.030319-0100)
    dfshim.dll          : 4.0.31106.0 (Main.031106-0000)

SOURCES
    Deployment url          : file://nt_server/prog/Publish/Digipot%20Utility/Digipot%20Utility.application
    Deployment Provider url     : file://nt_server/Prog/Publish/Digipot%20Utility/Digipot%20Utility.application
    Application url         : file://nt_server/prog/Publish/Digipot%20Utility/Application%20Files/Digipot%20Utility_1_0_0_72/Digipot%20Utility.exe.manifest

IDENTITIES
    Deployment Identity     : Digipot Utility.application, Version=1.0.0.72, Culture=neutral, PublicKeyToken=1e3769a7c667fbc1, processorArchitecture=msil
    Application Identity        : Digipot Utility.exe, Version=1.0.0.72, Culture=neutral, PublicKeyToken=1e3769a7c667fbc1, processorArchitecture=msil, type=win32

APPLICATION SUMMARY
    * Installable application.

ERROR SUMMARY
    Below is a summary of the errors, details of these errors are listed later in the log.
    * Activation of \\nt_server\prog\Publish\Digipot Utility\Digipot Utility.application 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
    * [3/14/2012 10:17:15 AM] : Activation of \\nt_server\prog\Publish\Digipot Utility\Digipot Utility.application has started.
    * [3/14/2012 10:17:15 AM] : Processing of deployment manifest has successfully completed.
    * [3/14/2012 10:17:15 AM] : Installation of the application has started.
    * [3/14/2012 10:17:15 AM] : Processing of application manifest has successfully completed.
    * [3/14/2012 10:17:17 AM] : Found compatible runtime version 2.0.50727.
    * [3/14/2012 10:17:17 AM] : Detecting dependent assembly Sentinel.v3.5Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=msil using Sentinel.v3.5Client, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=msil.
    * [3/14/2012 10:17:17 AM] : Detecting dependent assembly System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=msil using System.Data.Entity, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=msil.
    * [3/14/2012 10:17:17 AM] : Detecting dependent assembly NationalInstruments.Common.Native, Version=8.6.35.131, Culture=neutral, PublicKeyToken=18CBAE0F9955702A, processorArchitecture=x86 using NationalInstruments.Common.Native, Version=8.9.35.302, Culture=neutral, PublicKeyToken=18cbae0f9955702a, processorArchitecture=x86.
    * [3/14/2012 10:17:17 AM] : Detecting dependent assembly NationalInstruments.Common, Version=8.6.35.131, Culture=neutral, PublicKeyToken=18CBAE0F9955702A, processorArchitecture=msil using NationalInstruments.Common, Version=8.9.35.302, Culture=neutral, PublicKeyToken=18cbae0f9955702a, processorArchitecture=msil.
    * [3/14/2012 10:17:17 AM] : Request of trust and detection of platform is complete.

ERROR DETAILS
    Following errors were detected during this operation.
    * [3/14/2012 10:17:18 AM] System.ArgumentException
        - Value does not fall within the expected range.
        - Source: System.Deployment
        - Stack trace:
            at System.Deployment.Internal.Isolation.IStore.LockApplicationPath(UInt32 Flags, IDefinitionAppId ApId, IntPtr& Cookie)
            at System.Deployment.Application.ComponentStore.LockApplicationPath(DefinitionAppId definitionAppId)
            at System.Deployment.Application.SubscriptionStore.LockApplicationPath(DefinitionAppId definitionAppId)
            at System.Deployment.Application.FileDownloader.PatchFiles(SubscriptionState subState)
            at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
            at System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
            at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
            at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
            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.

提前致谢, 约瑟夫

编辑:似乎问题正在蔓延。在第二台机器上,我清除了“本地设置/应用程序”中的所有ClickOnce文件,因此我不得不重新安装旧程序。当我这样做时它给了我同样的错误。该计划最后一次更新于二月。作为回应,我尝试完全删除并重新安装.NET框架无济于事。

10 个答案:

答案 0 :(得分:8)

我的治疗方法有点不同。我在工作场所的3台机器中只有一台遇到问题。在尝试了大部分(如果不是全部)上述解决方案之后,我尝试了这个:

清除了我的AppData文件夹,但很难找到。我的位置在这里:

C:\Users\%usernamefolder%\AppData\Local\Apps\2.0\PN1V0WLG.QB8\2RVAAAH2.PA9

此部分" PN1V0WLG.QB8 \ 2RVAAAH2.PA9"可能是我的机器独有的。但在2RVAAAH2.PA9中有一些文件夹,其名称以我的应用程序名称的前4个字母开头:

Eg. "prog...exe_f9d3a3c4fe2dee3c_0001.0000_none_81c53bb624457ad3"

我继续并实际删除了2RVAAAH2.PA9目录中的所有文件夹,因为它们似乎都与我的程序或程序中的引用有关。我可以告诉他们其中一些与我使用的Telerik DLL有关,所以我也把它们抛弃了。

然后我重新安装了我的程序,它工作正常。

答案 1 :(得分:5)

看起来可能有几个问题看看,看看是否有任何帮助

  • 检查并查看是否有&在应用程序的路径中

http://connect.microsoft.com/VisualStudio/feedback/details/361607/clickonce-application-does-not-install-when-the-deployment-path-includes-ampersand

也看看这个

  • 我们曾经以“任何cpu”为目标,并且必须将其更改为x86才能使其在64位计算机上运行。对我们来说,这是因为我们使用DirectX,它只支持32位机器。因此,即使我们将所有DirectX代码放在针对x86的自己的项目中,我们也必须让我们的启动项目也针对x86。

http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/9e4b714e-bad4-4c62-a7ad-3c80e32d95eb/

  • 它似乎是由.vbproj文件中的未知更改引起的。如果您有源代码控制或文件备份,则还原旧版本的.vbproj文件并重新发布似乎可以解决问题。如果他们试图运行错误的发布,您可能需要或不必在目标计算机上卸载。

http://connect.microsoft.com/VisualStudio/feedback/details/437590/value-does-not-fall-within-the-expected-range-click-once-deployment-failure

  • 确保您在任何dll或任何循环引用上没有任何不匹配的版本号。

http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/9e4b714e-bad4-4c62-a7ad-3c80e32d95eb/

答案 2 :(得分:5)

所以我找到了一个解决方案,根据this thread上非“答案”解决方案的建议,我关闭了自动版本递增,并在“应用程序>程序集”下的项目设置中手动更新了程序集和文件版本信息......“它起作用。

答案 3 :(得分:1)

如果文件夹名称中有$category = $client->call($session, 'catalog_product.list'); ,请从文件夹名称中删除所有&。由于这个原因,我也遇到了同样的问题。

参考:Check Here

答案 4 :(得分:1)

解决方法是卸载并重新安装应用程序。我还没有找到错误本身的解决方案,以及为什么它会随机发生。我将发布一个新版本,它将发生在另一个人身上,而没有其他人。我刚刚在几分钟前发布了一个新版本,它在我的机器上搞砸了我的版本,没有其他人。我还没有找到解决方案,因为当我发布它时,它适用于大多数机器,但不适用于一对。这种方式已经持续了12年。

答案 5 :(得分:0)

如果您尝试在UNC共享上运行clickonce,则可能无效。我得到了与上面相同的结果,但我只是尝试部署到C:\而不是我们的共享,它运行得很好。我知道这不是一个解决方案,但至少它是一个线索 - 不确定这是否与身份验证有关......或更深层次的事情。伙计,我希望错误信息更有帮助。

答案 6 :(得分:0)

平台目标:任何CPU(msil)对我来说都是最重要的问题:设置为x86解决了问题

答案 7 :(得分:0)

我将发布位置切换为C:\ Temp。 安装失败,但这次告诉我,我从另一个位置安装了现有设备。 经过一番探索之后,我发现我可以通过以下方式解决问题:  1.使用“控制面板”卸载我的应用程序。  2.删除发布文件夹内容。

我无法弄清楚实际产生问题的步骤,但目前暂时没有。

答案 8 :(得分:0)

如果任何人遇到与WPF应用程序类似的问题,请查看我的回答here

答案 9 :(得分:0)

我在一个旧应用程序中遇到了这个问题,该应用程序有一些很难找到的先决条件。我发现VSTO可以很好地汇总许多文件(使其成为简单的故障排除步骤或简单的解决方案)。它帮了我一些旧电脑:

用于Office运行时的Visual Studio 2010工具: https://www.microsoft.com/en-US/download/details.aspx?id=48217