繁体   English   中英

项目尝试访问我从未使用过的DLL版本

[英]Project attempting to access version of DLL I have never used

我的项目正在尝试引用我从未使用过的DLL版本。 尝试访问数据库时出现错误:

Windows Service Manager.exe中发生类型为'System.IO.FileLoadException'的第一次机会异常

附加信息:无法加载文件或程序集'System.Data.SqlServerCe,版本= 3.5.1.0,区域性=中性,PublicKeyToken = 89845dcd8080cc91'或其依赖项之一。 找到的程序集的清单定义与程序集引用不匹配。

现在这很有意义,它应该不再能够找到,因为它从未存在过。

我的项目中引用的唯一版本是4.0.8902.1 ,而在项目的app.config ,引用是:

  <dependentAssembly> <assemblyIdentity name="System.Data.SqlServerCe" publicKeyToken="89845dcd8080cc91" /> <bindingRedirect oldVersion="4.0.0.0-4.0.0.1" newVersion="4.0.0.1" /> </dependentAssembly> 

这是项目中任何地方引用的唯一版本。

我当然想知道如何解决它,但是没有人知道一个项目如何开始任意引用从未存在过,并且在项目中任何地方都没有引用过的DLL版本吗? 从正常运行到现在的唯一变化是,我停止了这个项目几个小时的工作,然后重新打开它。

编辑:

在构建过程中,我看到:

考虑对程序集“ System.Data.SqlServerCe,Culture = neutral,PublicKeyToken = 89845dcd8080cc91”的app.config重新映射,从版本“ 3.5.1.0” []到版本“ 4.0.0.1” [C:\\ Program Files(x86)\\ Microsoft SQL Server Compact Edition \\ v4.0 \\ Private \\ System.Data.SqlServerCe.dll]解决冲突并摆脱警告。

不一定有帮助,因为没有引用3.5.1.0的app.config 我已经检查了解决方案中的每个app.config,甚至只是搜索了文本3.5.1.0 ,而该文本根本不存在...我不知道该如何解决。

我可以想到的下一件事情是在我的整个硬盘驱动器中搜索字符串'3.5.1.0'...因此,我将尝试这样做。

好吧,我仍然不知道发生了什么,但是我做了以下事情,而且似乎已经停止了:

1)清理解决方案中的每个项目

2)关闭Visual Studio

3)从解决方案目录中删除所有.suo文件

4)在.csproj文件中将AutoGenerateBindingRedirects设置为True

5)打开VS,重建解决方案,它可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM