【问题标题】:Error launching .NET application compiled to target 'Any CPU'启动编译为“任何 CPU”的 .NET 应用程序时出错
【发布时间】:2012-06-24 01:51:17
【问题描述】:

我有一个共享给大约 30 台不同计算机的 .NET 应用程序(32 位和 64 位计算机的混合)。

编译后,应用程序设置为目标“任何 CPU”。

它在所有机器上都运行良好,除了一台是 Windows 7 64 位的机器。

错误信息是:

在此操作期间检测到以下错误。 * [2011 年 11 月 2 日 上午 8 点 59 分 40 秒] System.ArgumentException - 值不在预期范围内。 - 来源:System.Deployment

经过研究,我发现如果我将目标 CPU 更改为 64 位,它在问题机器上运行良好,但在 32 位计算机上无法运行。

有解决办法吗?

堆栈跟踪:

- 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)

【问题讨论】:

  • 什么时候出现这个异常?运行应用程序时还是安装时?
  • 这是一个仅限在线的应用程序:应用程序无法启动。联系应用程序供应商。所以当它尝试第一次运行时
  • 您需要发布异常的堆栈跟踪。
  • 使用堆栈跟踪编辑问题

标签: .net vb.net x86 64-bit


【解决方案1】:

在 MSDN 论坛上发现的一个高度相关的主题是 ClickOnce Fails with "Value does not fall within the expected range."

【讨论】:

  • 我以前读过这个,那是我从中得到目标cpu信息的地方。问题是,我混合了使用 mysql 系统 dsn(odbc 数据源)的 32 位和 64 位应用程序,我可以在 syswow64 的 odbccard32 下安装 32 位版本,但这会给其他程序等带来全新的问题。跨度>
  • 再次阅读并遵循一些参考步骤,已解决问题,谢谢!
猜你喜欢
  • 2011-01-07
  • 1970-01-01
  • 2017-11-03
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多