我使用ClickOnce出版了我的.NET应用程序,和我所有的用户得到试图打开的程序以下错误信息:
“无法安装或运行应用程序。该应用程序需要组装Telerik.Windows.Data版本2012.1.215.40被安装在全局程序集缓存(GAC)第一”。
其实,我在我的应用程序中使用的版本比错误消息中提到的一个新。 我还没有我的机器在这个问题上,我用它来开发应用程序。 我不知道为什么它正在寻找旧版本的DLL。 我找不到它是由我的应用程序引用。
能否请你帮我在这?
我使用ClickOnce出版了我的.NET应用程序,和我所有的用户得到试图打开的程序以下错误信息:
“无法安装或运行应用程序。该应用程序需要组装Telerik.Windows.Data版本2012.1.215.40被安装在全局程序集缓存(GAC)第一”。
其实,我在我的应用程序中使用的版本比错误消息中提到的一个新。 我还没有我的机器在这个问题上,我用它来开发应用程序。 我不知道为什么它正在寻找旧版本的DLL。 我找不到它是由我的应用程序引用。
能否请你帮我在这?
我发现这里的解决方案:
http://ablogontech.wordpress.com/2009/01/02/unable-to-install-or-run-the-application-the-application-requires-that-the-assembly-be-installed-in-the-全球组装缓存-GAC-第一/
来自WordPress的链接摘录:
在编译时我的第一个C#生产中的应用我recevied此错误。 我必须做到以下几点在Visual Studio中的项目:
- 在解决方案资源管理器中,展开参考节点,然后单击错误中列出的组件。 确保复制本地的属性网格设置为“真”。
- 在项目的属性,发布| 应用程序的文件选项卡,确保发布状态在错误中列出的组件设置为“包含”
在我的情况下,该问题导致此错误消息是不正确的图书馆出版的配置。
当我把我的图书馆财产CopyLocal = false,然后在项目发布应用程序文件设置发布状态到包括所有工程项目的重建和未来发布后的罚款。
因此,我们告诉编译器的ClickOnce,而不是默认使用的应用程序发布这个库,并通过改变从先决条件发布国包括告诉ClickOnce的,而不是在GAC搜索这个库。
您也应该检查有没有错装配在你的绑定重定向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>
保证的范围old
到new
有道理,或简单的,这个节点是有道理的。 我的第一次尝试是简单地将其删除,并再次检查。 它可以发生一些的NuGet包乱用老版本的配置文件,而不是在新不再需要一次该节点(和它不会自动删除)。
如果两个版本相同的DLL的整个依赖项目称为那么这将是错误的根本原因之一。
它发生在我和抱怨NLog.dll,我发现的是,我的应用程序称为Nlog.dll的一个版本,我的图书馆项目简称Nlog.dll的另一个版本,清单上列出的一个版本依赖(安装),另一个版本依赖(即所需的需要存在于系统甚至本地设置复制到真)。
我有同样的错误,当我在Visual Studio忘记变化解决方案的配置从“调试”,以“释放”。