C# ClickOnce应用程序抛出错误;。。需要程序集MySql。数据版本6.5.4.0必须首先安装在全局程序集缓存(GAC)中。”;

C# ClickOnce应用程序抛出错误;。。需要程序集MySql。数据版本6.5.4.0必须首先安装在全局程序集缓存(GAC)中。”;,c#,asp.net,.net,mysql,windows,C#,Asp.net,.net,Mysql,Windows,我是部署.NET应用程序的新手,因此如果需要更多详细信息,请告诉我 我用MySql在Visual Studio中开发了一个C#控制台应用程序。这是通过ClickOnce应用程序部署在2台Windows 7机器上的,运行良好。尝试在Windows XP计算机上安装,但出现以下错误: 需要系统更新: 无法安装或运行应用程序。应用程序需要 该程序集MySql.Data版本6.5.4.0将安装在全局数据库中 首先是程序集缓存(GAC) 我做了一些谷歌搜索,我不认为这是已经提到的任何问题-没有防火墙,没有

我是部署.NET应用程序的新手,因此如果需要更多详细信息,请告诉我

我用MySql在Visual Studio中开发了一个C#控制台应用程序。这是通过ClickOnce应用程序部署在2台Windows 7机器上的,运行良好。尝试在Windows XP计算机上安装,但出现以下错误:

需要系统更新:

无法安装或运行应用程序。应用程序需要 该程序集MySql.Data版本6.5.4.0将安装在全局数据库中 首先是程序集缓存(GAC)

我做了一些谷歌搜索,我不认为这是已经提到的任何问题-没有防火墙,没有防病毒,在管理员帐户上拥有所有权限。我检查了C:\Windows\Assembly,并列出了MySql.Data.CF.dll v6.5.4.0

同事还发现了以下错误日志:

平台版本信息Windows:5.1.2600.196608(Win32NT)通用 语言运行时:4.0.30319.1 System.Deployment.dll:4.0.30319.1 (RTMRel.030319-0100)clr.dll:4.0.30319.1(RTMRel.030319-0100) dfdll.dll:4.0.30319.1(RTMRel.030319-0100)dfshim.dll: 4.0.31106.0(主管道031106-0000)

源部署url: file:///C:/GearBox/app/publish/ClockworksConsoleApplication.application 应用程序url: file:///C:/GearBox/app/publish/Application%20Files/ClockworksConsoleApplication_1_0_0_6/ClockworksConsoleApplication.exe.manifest

标识部署标识: ClockworksConsoleApplication.application,版本=1.0.0.6, 区域性=中性,PublicKeyToken=efa8c6cf1fc52128, processorArchitecture=msil应用程序标识: ClockworksConsoleApplication.exe,版本=1.0.0.6,区域性=中性, PublicKeyToken=efa8c6cf1fc52128,处理器架构=msil, 类型=win32

应用程序摘要*可安装的应用程序

下面的错误摘要是错误的摘要,包括这些错误的详细信息 错误将在日志的后面列出。*激活 C:\GearBox\app\publish\ClockworksConsoleApplication.application 导致异常。检测到以下故障消息:+ 未能加载运行时。(来自HRESULT的异常:0x80131700)

组件存储事务失败摘要未发现任何事务错误 检测到

警告在此操作期间没有警告

运行进度状态*[8/31/2012 9:56:00 AM]:激活 C:\Gearket\app\publish\ClockworksConsoleApplication.application已启动 开始。*[8/31/2012 9:56:02 AM]:部署清单的处理 已成功完成。*[8/31/2012 9:56:02 AM]:安装 已启动应用程序的第页。*[8/31/2012 9:56:02 AM]:正在处理 已成功完成应用程序清单的更新。*[8/31/2012 9:56:08 AM]:找到兼容的运行时版本2.0.50727

在此操作期间检测到以下错误的错误详细信息。 *[8/31/2012 9:56:08 AM]System.Runtime.InteropServices.COMException -未能加载运行时。(来自HRESULT的异常:0x80131700) -来源:System.Deployment -堆栈跟踪:位于System.Deployment.Application.NativeMethods.IClrMetaHostPolicy.GetRequestedRuntime(MetaHostPolicyFlags policyFlags、字符串二进制路径、IStream configStream、StringBuilder 版本,Int32和版本长度,StringBuilder图像版本,Int32& imageVersionLength、Int32和pdwConfigFlags、Guid接口ID)位于 System.Deployment.Application.NativeMethods.GetAssemblyCacheInterface(字符串 CLRVersionString,布尔FetchRuntimeHost,CCorRuntimeHost& 运行时主机)在 System.Deployment.Application.PlatformDetector.VerifyPlatformDependencies(AssemblyManifest appManifest、AssemblyManifest部署清单、字符串tempDir)位于 System.Deployment.Application.ApplicationActivator.DownloadApplication(订阅状态 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,浏览器设置浏览器设置, 位于的字符串和错误页面URL) System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(对象 (州)

组件存储事务详细信息未显示任何事务信息 可用

我之前在安装时遇到另一个错误

URLDownloadToCacheFile失败,出现HRESULT'-2146697211'错误:错误 尝试下载时出错 'http://station52/clockworksEXE/ClockworksConsoleApplication.application"

然而,我改变了我的设置,从CD而不是网站发布,它似乎已经解决了这个问题,但我仍然得到了GAC错误

有什么想法吗

在Application Files文件夹中有一个.Application文件(或者.manifest-很抱歉,我现在不在机器前面,所以无法检查)。该文件内部是XML,因此您可以打开并编辑它。它将包含对缺少的全部的引用。请确保它指定的版本是正确的,因为我见过这样的情况:如果每次发布到同一个位置,该文件不会重新生成。
如果您已经确定这是正确的,那么您需要确保您的click once包中包含正确的MySQL程序集。(更多内容)

解决方案是将MySQL dll作为应用程序的一部分。在发布应用程序设置下,将dll设置为“包含本地”和/或“包含”

这样,当您每天单击一次时