【问题标题】:Unable to install or run the application: Click Once无法安装或运行应用程序:单击一次
【发布时间】:2018-10-18 09:43:17
【问题描述】:

我使用 ClickOnce 发布了我的 .net 应用程序,我的所有用户在尝试打开该程序时都收到以下错误消息:

“无法安装或运行应用程序。应用程序要求先将程序集 Telerik.Windows.Data 版本 2012.1.215.40 安装在全局程序集缓存 (GAC) 中”。

我在应用程序中实际使用的版本比错误消息中提到的版本更新。我用来开发应用程序的机器上也没有这个问题。我想知道为什么它要寻找旧版本的 dll。我找不到我的应用程序引用它的位置。

您能帮我解决这个问题吗?

【问题讨论】:

  • 您是否将程序集包含在您的应用程序中,还是应该从 Telerik 安装应用程序安装? ClickOnce 应用程序无法在 GAC 中安装 dll。相反,它们必须由另一个安装程序应用程序放置在那里。
  • 在“属性”的“发布”选项卡的“应用程序文件”列表下,我将其显示为包含(自动)。事实上,我什至不需要那个 dll。我将它排除在项目之外,但我遇到了同样的问题。难道你不知道为什么 ClickOnce(或它创建的安装包)想要那个过时的 dll 吗?
  • 不,它不应该寻找它,除非它在项目中的某个地方被引用。抱歉,我现在有点难过。
  • 但不知何故,.dll 以某种方式被寻找......
  • “过时”的 dll 可能是必需的,因为您的一个参考文献引用了它。

标签: .net clickonce


【解决方案1】:

我在这里找到了解决方案:

http://ablogontech.wordpress.com/2009/01/02/unable-to-install-or-run-the-application-the-application-requires-that-the-assembly-be-installed-in-the-global-assembly-cache-gac-first/

wordpress 链接摘录:

我在编译我的第一个 C# 产品时收到了这个错误 应用。我必须在 Visual Studio 中为 项目:

  1. 在解决方案资源管理器中,展开引用节点并单击错误中列出的程序集。确保在属性网格中复制本地 设置为“真”。
  2. 在项目的属性中,发布 |应用程序文件选项卡,确保设置了错误中列出的程序集的发布状态 “包括”

【讨论】:

    【解决方案2】:

    就我而言,导致此错误消息的问题是库发布配置不正确。

    当我设置我的库属性 CopyLocal = false,然后在项目发布应用程序文件中将 Publish Status 设置为 Include,一切正常在项目重建和下一次发布之后。

    因此我们告诉 ClickOnce 编译器,默认情况下不要将这个库与应用程序一起发布,并且通过将 Publish State 从 Prerequisites 更改为 Include 告诉 ClickOnce,不要搜索这个GAC 中的库。

    【讨论】:

    • 这是我的问题。愚蠢地将 app.config 文件添加为嵌入式资源。将此设置为“无”,我没有得到问题
    【解决方案3】:

    您还应该检查您的app.config 文件中是否存在错误的程序集绑定重定向。寻找一个看起来像这样的节点:

      <dependentAssembly>
        <assemblyIdentity name="Telerik.Windows.Data" publicKeyToken="--SomePublicToken--" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-3.0.2.0" newVersion="3.0.2.0"/>
      </dependentAssembly>
    

    并确保oldnew 的范围是有意义的,或者简单地说,这个节点是有意义的。我的第一次尝试是简单地删除它并再次检查。一些 NuGet 包可能会与旧版本中的配置文件混淆,并且在新版本中不再需要此节点(并且不会自动删除)。

    【讨论】:

      【解决方案4】:

      如果在依赖项目中引用了同一个 dll 的两个版本,那么这将是错误的根本原因之一。

      它发生在我身上并抱怨 NLog.dll,我发现我的应用程序引用了一个版本的 Nlog.dll,而我的库项目引用了另一个版本的 Nlog.dll,并且清单将一个版本列为依赖项(安装)和另一个版本作为依赖项(必需的,即需要存在于系统中,甚至复制到本地设置为 true)。

      【讨论】:

        猜你喜欢
        • 2010-11-21
        • 2021-11-29
        • 1970-01-01
        • 2017-09-24
        • 2013-12-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多