相关疑难解决方法(0)

DLL Hell - 如果缺少版本6.9.3.0或6.8.3.0的MySql.Data.dll,我的应用程序将抛出错误

问题背景

我在C#中编写了一个使用MySqlConnector的应用程序.我已经添加了MySql.Data.dll(版本6.9.3.0)References- 这一切都在我的电脑上运行(运行Windows 7).但是,从最近的版本开始,当我尝试在另一台PC上运行该应用程序(运行Windows XP)时,它会在启动时抛出异常.

我添加了一个UnhandledExceptionEventHandler显示错误Could not load file or assembly 'MySql.Data, Version 6.8.3.0. (...etc...)' or one of its dependencies. The located assembly's manifest description does not match the assembly reference. File name: 'MySql.Data, Version=6.8.3.0, (...etc...).

显然,这是寻找6.8.3.0版本,但只有在引用寻找版本6.9.3.0 -但我想知道的是,为什么它在寻找这个版本时,它工作正常与早期版本,以及如何我可以指定哪个版本寻找MySql.

我知道我可以添加另一个对早期版本的引用.dll,但我想了解为什么会发生这种情况.

尝试诊断问题的步骤

  • 检查项目References后看到堆栈溢出这个问题并确认参考,MySql.Data.dll已添加到项目中,其版本一起(6.9.3.0).

  • 搜索了与异常错误消息相关的结果,并在Stack Overflow上发现了这篇文章,描述了它的原因(我知道了,但它证实了这一点)

  • 一位同事让我确认Reference 的SpecificVersion属性MySql.Data设置为False(它是).

  • 尝试按照下面的答案中的建议添加程序集绑定到配置 - 它没有帮助,抛出相同的错误. …

c# mysql

7
推荐指数
1
解决办法
713
查看次数

SQL Lite异常

我已经SQLLite在我的应用程序中生成了我的模型,但是当我尝试调用DBContextCall时它会抛出异常.

System.IO.FileLoadException发生 了类型的异常,mscorlib.dll但未在用户代码中处理

附加信息:无法加载文件或程序集'System.Data.SQLite.EF6,Version = 1.0.93.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

请帮我.

.net sqlite system.data.sqlite

7
推荐指数
1
解决办法
1097
查看次数

C# Unity 错误:无法加载文件或程序集

我在 Unity 上找到了这篇演示文章。看起来很简单,但我收到以下错误:

无法加载文件或程序集“System.Runtime.CompilerServices.Unsafe,Version=4.0.4.1,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

https://www.tutorialsteacher.com/ioc/register-and-resolve-in-unity-container

using System;
using Unity;

namespace UnityContainerDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var container = new UnityContainer();
            container.RegisterType<ICar, BMW>();// Map ICar with BMW 

            //Resolves dependencies and returns Driver object 
            Driver drv = container.Resolve<Driver>();
            drv.RunCar();
        }
    }

    public interface ICar
    {
        int Run();
    }

    public class BMW : ICar
    {
        private int _miles = 0;

        public int Run()
        {
            return ++_miles;
        }
    }

    public class Ford : ICar
    {
        private int …
Run Code Online (Sandbox Code Playgroud)

c# unity-container

6
推荐指数
2
解决办法
1万
查看次数

参考冲突

我在我的网站上添加了对以下dll的引用

Google.GData.Client.dll
Google.GData.YouTube.dll
Google.GData.Extensions.dll

它们用于将视频上传到youtube.现在,当我尝试编译我的网站时,它添加了另一个名为Newtonsoft.Json.dll的dll,并且编译失败了

错误4'c:\ Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll'和'g:\ Projects\X\bin\Newtonsoft.Json.dll'中存在类型'System.Func'

我不敢相信谷歌已经发布了一个有这样一个bug的产品,我一定在这里遗漏了什么?

有没有人知道如何解决这个问题?

c# youtube asp.net

5
推荐指数
1
解决办法
1941
查看次数

asp服务器错误'无法加载文件或程序集'但程序集肯定存在.

我目前收到以下错误.在locahost网站上.

Could not load file or assembly 'MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Run Code Online (Sandbox Code Playgroud)

虽然,引用肯定存在于references文件夹中,并且dll肯定在我指向的地方的本地机器上.我也尝试删除并重新添加引用.

有谁知道会导致这个错误的原因是什么?

还有什么是程序集清单定义?

在此先感谢您的帮助,我非常感谢.

.net mysql asp.net

4
推荐指数
1
解决办法
1万
查看次数

通过右键单击桌面或目录背景来创建 Shell ContextMenu

名为SharpShell的 .NET Shell 扩展框架很棒;我开发了一个“非常容易”的右键单击文件 Shell ContextMenu,它可以同时选择文件和目录。

现在,我想通过右键单击空白区域(即,在桌面上或在文件夹内的白点上)来开发 Shell ContextMenu。是否有可能仍然使用 SharpShell?或者我需要转向不同的解决方案吗?......在第二种情况下......你有什么建议?

谢谢

c# contextmenu windows-shell shell-extensions sharpshell

4
推荐指数
1
解决办法
2011
查看次数

COM注册和GAC

我在Visual Studio 2005中有一个Web项目,一个C#库项目和一个Web安装项目.Web项目需要在GAC中注册C#库.这很简单,只需将GAC文件夹添加到安装项目中,然后将C#库的主输出放在那里.还需要为COM互操作注册C#库.我单击选择GAC文件夹中的主输出,并将Register属性更改为vsdrpCOM.我构建安装项目并运行它,但DLL永远不会注册COM.

这对我来说并不是一个惊喜.我总是不得不添加一个安装程序类,它有一个自定义操作,使用RegistrationServices.RegisterAssembly来正确注册我的DLL的COM.所以我将这个我已经接受多年的解决方法应用于我的情况.现在我发现在安装项目的GAC文件夹中分配给主输出的自定义操作会阻止安装项目甚至构建.

我一直觉得我正在攻击,以便让.NET和COM在设置和部署项目中发挥出色.解决问题的正确方法是什么?

c# com installation gac visual-studio-2005

2
推荐指数
1
解决办法
5849
查看次数

定位程序集的清单定义与程序集引用C#Dll地狱不匹配

我在这里遇到一个大型项目.我有一个dll补丁,我试图将其放入程序集中,以便我可以覆盖项目中的内置dll.我将.dll添加到StartProject并替换现有的,但我得到以下错误,我不知道为什么会这样.我已经尝试将特定版本更改为False,并且每个dll的运行时版本看起来都相同.这个dll与其他dll之间的唯一区别是使用了一个名为SpecificVersion的选项 - 但无论如何都设置为false.

Failed processing: System.IO.FileLoadException: Could not load file or assembly
XXX.XXX.XXX, Version=X.X.X.X, Culture=neutral, PublicKeyTok
en=5353c9f66d4ed1ec' or one of its dependencies. The located assembly's manifest
 definition does not match the assembly reference. (Exception from HRESULT: 0x80
131040)
File name: 'XXX.XXX.XXX, Version=X.X.X.X, Culture=neutral, P
ublicKeyToken=xxxxxxxxxxxxxxx'
   at XXX.XXX.XXX.XXX.XXX.XX(.....)
Run Code Online (Sandbox Code Playgroud)

我正在查看fuslogvw失败输出的绑定,我得到以下内容.很抱歉再次发号施令.

=== Pre-bind state information ===
LOG: User = X
LOG: DisplayName = DataObjects, Version=0.4.1060.0, Culture=neutral, PublicKeyToken=5353c9f66d4ed1ec
 (Fully-specified)
LOG: Appbase = file://X/lib/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: …
Run Code Online (Sandbox Code Playgroud)

c# dll visual-studio-2012

1
推荐指数
1
解决办法
2万
查看次数