由于DLL上的版本不匹配,Windows.Net应用程序中出现异常

由于DLL上的版本不匹配,Windows.Net应用程序中出现异常,.net,windows,dll,.net,Windows,Dll,我有一个Windows服务应用程序,也可以作为Windows窗体应用程序运行以进行测试。有几个DLL链接到我的主项目。只有一个给我带来了麻烦。内部的异常给了我一个线索,说明出了什么问题。这是: {“无法加载文件或程序集'HIDDProcessing,Version=1.0.5191.17319,Culture=neutral,PublicKeyToken=863435ae869eb242'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的异常:0x8013100)”:“

我有一个Windows服务应用程序,也可以作为Windows窗体应用程序运行以进行测试。有几个DLL链接到我的主项目。只有一个给我带来了麻烦。内部的异常给了我一个线索,说明出了什么问题。这是:

{“无法加载文件或程序集'HIDDProcessing,Version=1.0.5191.17319,Culture=neutral,PublicKeyToken=863435ae869eb242'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的异常:0x8013100)”:“HIDDProcessing,版本=1.0.5191.17319,区域性=中性,PublicKeyToken=863435ae869eb242”}

System.IO.FileLoadException:{“无法加载文件或程序集'HIDDProcessing,Version=1.0.5191.17319,Culture=neutral,PublicKeyToken=863435ae869eb242'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT中的异常:0x8013100):”HIDDProcessing,版本=1.0.5191.17319,区域性=中性,PublicKeyToken=863435ae869eb242“}

我可以通过删除hiddprocessing.dll并重新编译来解决这个问题。但是我想知道为什么我必须这样做。其他的dll都没有给我带来任何问题


我注意到,如果我对参考列表进行修改,所有其他dll都有一个固定的版本号。例如1.0.0.0。而我的问题dll有一个特定的版本,例如1.0.5190.26584。如果我可以删除特定的版本,我想我的问题会消失。但我不知道如何做。

您只是复制了一个具有wron的dllg版本。它不是1.0.5191.17319版本。有了这样的版本号,这很少会让人感到惊讶。创建程序集的人在版本号上走捷径,他使用自动版本号递增。他只需重建DLL,而不必对代码做任何更改,就可以生成另一个版本。这就是这是一种相当糟糕的软件版本设置方法,但并不少见,构建服务器往往会减少这一问题。需要使用更新的程序集作为参考重新编译以避免运行时错误。感谢您的回复。我不确定您的建议。如何更改代码以删除特定版本?我是否更改了e DLL或我的主要可执行文件?请具体点。不知道我需要多具体,最后一句话非常明确,没有说要更改代码。只是重新编译不起作用。如果我删除DLL然后重新编译,它就会起作用。我不想这样做。