C# &引用;值不在预期范围内;ClickOnce部署

C# &引用;值不在预期范围内;ClickOnce部署,c#,vb.net,clickonce,C#,Vb.net,Clickonce,我有一个ClickOnce应用程序已经使用了几个月了,但最近在部署最新版本时出现了一个错误。在这个最新版本中,我添加了一个对我以前没有使用过的DLL的引用(如果相关的话),并怀疑这与问题有关,但我不知道如何修复它 正在部署的实际项目引用了另一个库项目,该库项目引用了DLL(它引用了其他DLL,但这些DLL已经运行了几个月,并且没有更改)。接下来,我尝试删除我的“本地设置/应用”文件夹并多次重新启动,以及重新创建项目并部署到其他位置。该错误存在于多台计算机上,因此我不怀疑它的用户配置文件已损坏。下

我有一个ClickOnce应用程序已经使用了几个月了,但最近在部署最新版本时出现了一个错误。在这个最新版本中,我添加了一个对我以前没有使用过的DLL的引用(如果相关的话),并怀疑这与问题有关,但我不知道如何修复它

正在部署的实际项目引用了另一个库项目,该库项目引用了DLL(它引用了其他DLL,但这些DLL已经运行了几个月,并且没有更改)。接下来,我尝试删除我的“本地设置/应用”文件夹并多次重新启动,以及重新创建项目并部署到其他位置。该错误存在于多台计算机上,因此我不怀疑它的用户配置文件已损坏。下面是我得到的全部错误:

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文件,因此我不得不重新安装一个旧程序。当我这样做的时候,它给了我同样的错误。该计划上次更新是在2月份。作为回应,我尝试完全删除并重新安装.NET framework,但没有任何效果。

看起来可能有几个问题需要解决,看看其中是否有帮助

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

再看看这个

  • 我们过去的目标是“任何cpu”,为了让它在64位机器上工作,我们不得不将其改为x86。对我们来说,这是因为我们使用DirectX,它只支持32位机器。因此,即使我们将所有DirectX代码都放在了针对x86的项目中,我们也必须让我们的启动项目也针对x86

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

  • 确保任何DLL上没有任何不匹配的版本号,或任何循环引用

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

如果您试图在UNC共享上运行clickonce,它可能不起作用。我得到的结果与上面的相同,但我只是尝试部署到C:\而不是我们的共享,它运行得很好。我知道这不是一个解决方案,但至少它是一个线索-不确定这是否与身份验证有关。。。或者更深层的东西。伙计,我希望错误消息能更有用。

平台目标:任何CPU(msil)都是我的问题:设置为x86解决了问题。

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


我还没有弄清楚到底是什么步骤导致了这个问题,但它现在已经消失了。

我的治疗方法有点不同。我的工作场所只有三台机器中的一台出了问题。在尝试了上述大多数(如果不是全部)解决方案后,我尝试了以下方法:

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

C:\Users\%usernamefolder%\AppData\Local\Apps\2.0\PN1V0WLG.QB8\2RVAAAH2.PA9
这部分“PN1V0WLG.QB8\2rvaah2.PA9”可能是我的机器所独有的。但在2RVAAH2.PA9中,有些文件夹的名称以我的应用程序名称的前4个字母开头:

Eg. "prog...exe_f9d3a3c4fe2dee3c_0001.0000_none_81c53bb624457ad3"
我接着删除了2rvaah2.PA9目录中的所有文件夹,因为它们似乎都与我的程序或程序中的引用有关。我可以说其中一些和我使用的Telerik DLL有关,所以我也把它们扔掉了


然后我重新安装了我的程序,它成功了

如果文件夹名称中有任何
&
,请从文件夹名称中删除任何
&
。出于这个原因,我也有同样的问题


参考资料:

如果任何人在WPF应用程序中遇到类似问题,请查看我的答案。

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

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

Visual Studio 2010 Office运行时工具:

谢谢您的回复,我的路径中没有&。我考虑过任何CPU解决方案,但没有尝试,因为上面提到的问题是x64机器上的问题,而我所有的问题都是x86。从那篇文章开始,我就开始尝试,但没有成功。版本是我怀疑的问题,但我不确定这是怎么回事。我的部署项目仅引用我的库项目。它引用了打包在该项目输出中的4个DLL,以及另一个项目(不引用任何内容)。在这个版本中有一个新的DLL引用,但我尝试删除它,但仍然有问题。哦,我忘了处理.vbproj损坏的想法。正如我在最初的帖子中所说的,我试图从sc完全重新创建这个项目