我目前正在尝试运行一个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.
答案 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丢失,可能需要运行几次