2012-07-16 108 views
21

我使用ClickOnce出版了我的.NET应用程序,和我所有的用户得到试图打开的程序以下错误消息:无法安装或运行应用程序:点击一次

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

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

你能帮我解决吗?

+1

您是否将程序集包含在您的应用程序中,还是应该从Telerik安装应用程序安装? ClickOnce应用程序无法在GAC中安装dll。相反,他们必须由另一个安装程序应用程序放在那里。 – RLH 2012-07-16 14:51:44

+0

在“属性”中的“发布”选项卡的“应用程序文件”列表下,我将其显示为包含(自动)。事实上,我甚至不需要那个DLL。我把它从项目中排除了,但我也遇到了同样的问题。难道你不知道为什么ClickOnce(或其创建的安装包)想要这个过时的dll吗? – 2012-07-16 15:14:29

+1

不,它不应该查找它,除非它在项目中的某处引用。对不起,我现在有点难过。 – RLH 2012-07-16 15:17:40

回答

32

,我发现这里的解决方案:从WordPress的链接

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/

摘录:

我在编译我的第一个C#生产 应用recevied此错误。我必须做到以下几点在Visual Studio中的 项目:

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

Thansk很多。你解决了我的生产问题。 – 2015-06-17 08:47:18

0

我有同样的错误,当我在忘变化解决方案配置从“调试”,以“释放”视觉工作室。

1

在我的情况下,导致此错误消息的问题是不正确的库发布配置。

当我把我的图书馆财产CopyLocal =假,然后在项目发布应用程序文件设置发布状态包括,所有工程项目的重建和未来发布后的罚款。

因此,我们告诉编译器的ClickOnce,而不是默认使用的应用程序发布这个库,并通过改变从先决条件发布国家包括告诉ClickOnce的,而不是在GAC搜索这个库。

0

您还应该检查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软件包与旧版本中的配置文件混淆,并且此新节点不再需要新版本(并且不会自动删除)。

相关问题