【问题标题】:ClickOnce Deployment ErrorsClickOnce 部署错误
【发布时间】:2010-10-16 11:56:30
【问题描述】:

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

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

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

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

错误详情 在此操作期间检测到以下错误。 * [2009 年 3 月 30 日下午 5:35:37] System.ArgumentException - 值不在预期范围内。 - 来源:System.Deployment - 堆栈跟踪: 在 System.Deployment.Internal.Isolation.IStore.LockApplicationPath(UInt32 标志,IDefinitionAppId ApId,IntPtr& Cookie) 在 System.Deployment.Application.ComponentStore.LockApplicationPath(DefinitionAppId 定义AppId) 在 System.Deployment.Application.SubscriptionStore.LockApplicationPath(DefinitionAppId 定义AppId) 在 System.Deployment.Application.FileDownloader.PatchFiles(SubscriptionState subState) 在 System.Deployment.Application.FileDownloader.Download(SubscriptionState subState) 在 System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState、AssemblyManifest deployManifest、AssemblyManifest appManifest、Uri sourceUriBase、String targetDirectory、String group、IDownloadNotification 通知、DownloadOptions 选项) 在 System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp) 在 System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc) 在 System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri,布尔 isShortcut,字符串 textualSubId,字符串 deploymentProviderUrlFromExtension,BrowserSettings browserSettings,字符串和 errorPageUrl) 在 System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(对象状态)

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

引用的论坛是here

【问题讨论】:

  • 以前的版本在发布文件夹吗?您丢失了 clickOnce 密钥吗?
  • 我不确定您所说的 ClickOnce 密钥丢失是什么意思?以前的版本在服务器上,但后来我尝试将其移至新路径,然后甚至完全移至新服务器,无论如何同样的错误仍然存​​在。

标签: vb.net winforms deployment clickonce publish


【解决方案1】:

我也遇到过类似的问题。

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

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

【讨论】:

  • 只是想通过谷歌搜索添加这一点,我发现了这个线程,因为我遇到了同样的问题,并且 ClickOnce 对我来说是轰炸,因为安装目录中有一个 & 符号。很烦人,但至少我知道现在是什么。
【解决方案2】:

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

Jonez:不幸的是,移动我的用户个人资料会很麻烦,而且在我看来,这对于解决发布问题来说有点过头了。

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

【讨论】:

    【解决方案3】:

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

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

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

    祝你好运。

    【讨论】:

    • 这纯粹是推测,但我非常有信心删除整个用户配置文件是有效的,因为它会导致注册表中的某种“重置”,而且我相信 System.Deployment 的许多方面与注册表中的用户个人资料信息相关联。
    • 在极少数情况下,重置 Windows 区域设置可以纠正部署问题。通过在控制面板中切换区域设置来执行此操作,在每个切换之间点击“应用”。
    【解决方案4】:

    我刚刚遇到此错误,只需在用户计算机上卸载然后重新安装应用程序即可解决此错误。

    【讨论】:

    • 这非常简单,对我有用。除非这很少奏效,否则我认为它应该是这个错误的第一道防线
    【解决方案5】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      • 2011-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多