.net不会出现版本冲突问题的,往往版本冲突指的是你开发软件时引用与使用不同的版本所导致的。.net版本的引用依赖的并不是版本号,而是publicToken做为依据的。所以多数时间会出现版本找不到的现象。或者引用了两个不同版本的.net程序集(两个publictoken),即使是这样,那么你开发时编译器是无法通过的,因为编译时根本不知道某个方法到底来源于哪个程序集。出现编译问题时,往往是因为使用了Fake引用,然后,由于更新问题(发布时为使用的版本与开发时使用的版本不同),这时可能会现一些错误的问题。并不会出现版本冲突问题。
所以我无法确定你所谓的版本冲突到底是什么现象,一般在开发活动与部署活动中都不会出现直接的版本冲突提示的。所谓的版本冲突,应该不是程序报错而你自己的理解吧?否则直接把问描述的更清晰些,不要自己给问题定义一些不规则的描述——至少我不觉得你真的遇到了版本冲突的问题。
大前提——.net各版本是可以共存的!MS对其版本控制的机制还是非常信任的。.net开发版本完全共存,而运行版本基本上更不会出现这种情况,本身各运行版本可以共存,而且开发版本与运行版本是不一致的。
比如,.net 3.5是开发版本,但不管你是用.net 2.0还是3.5,其运行版本都是.net 2.0.49XX版本,当然了,.net 4.0/4.5.X/4.6.X/4.7.X生成的程序,其运行版本都是4.0。所以基本上不会遇到版本冲突。
会显示此警告,如果您的项目依赖项关系图包含对同一程序集的不同版本。如果具有 app.config 文件,则 Visual Studio 可以添加绑定重定向到它。 绑定重定向所有程序集引用重定向到程序集的最高编号版本的强制说明。 Visual Studio 保存在 app.config 的重定向信息。 如果使用绑定重定向,则不会再出现此警告。
如果您决定不添加绑定重定向,项目将象以前一样继续引用程序集的同一版本。 但是,仍出现此警告。
更正此错误
双击该警告并选择 “是”,若收到提示, “希望通过添加绑定这些冲突重于 app.config 文件的记录定向?”
说明你的程序是Framework4.0以下版本的,而引用的dll却是Framework4.0版本所以警告说,可能会运行不正常,你可以把你的程序设置为Framework4.0版本
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)