获取错误“文件或程序集名称'MySql.Data,Version = 6.7.4.0 ......'

时间:2014-02-10 16:06:52

标签: c# mysql .net visual-studio-2005 windows-ce

我目前正在尝试运行一个C#程序,我在Windows CE v6.0计算机上使用Microsoft Visual C#2005创建,这是一个条形码扫描器/掌上电脑。这是一个控制台程序,但是当我运行程序时,我收到错误:

File or assembly name 'MySql.Data,Version=6.7.4.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D' , or one of its dependencies was not found.

查看详细信息,它是TypeLoadException

这是我的app.manifest文件:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <applicationRequestMinimum>
        <PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
        <defaultAssemblyRequest permissionSetReference="Custom" />
      </applicationRequestMinimum>
    </security>
  </trustInfo>
    <system.data>
        <DbProviderFactories>
            <remove name="MySQL Data Provider" />
            <add name="MySQL Data Provider"
                invariant="MySql.Data.MySqlClient"
                description=".Net Framework Data Provider for MySQL"
                type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
        </DbProviderFactories>
    </system.data>
</asmv1:assembly>

修改 如果上面的错误没有出现,则显示另一个类似错误:

File or assembly name 'System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089', or one of its dependencies, was not found.

2 个答案:

答案 0 :(得分:1)

该错误表示您的应用程序找不到您在创建应用程序时指定的MySQL ADO数据提供程序。最有可能的是,您根本没有将其复制到Windows CE计算机上。

找到它:进入Visual Studio,在解决方案资源管理器中打开项目下的“参考”。找到Mysql条目并选择它。 “属性”窗口将标识dll的路径。

将该DLL复制到与Win CE计算机上的可执行文件相同的目录中。

答案 1 :(得分:0)

您可以尝试启用Fusion Log Viewer以确切地查看导致问题的库(如下所述: http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx)。如果有一批dll丢失,可能需要运行几次