强制一个.dll来更改它的版本?

问题描述:

我有一个奇怪的问题。我有一个使用ninject 2.0版的asp.net mvc 3应用程序,但我想将其升级到2.2版。但每次我删除它,并添加新的.dll它告诉我仍然使用版本2.0版。我不知道为什么。强制一个.dll来更改它的版本?

我不知道它从哪里得到这个数字。我制作了一个空白的asp.net mvc应用程序,并添加了新版本,它说它是2.2版本。

那么,为什么我的应用程序一直在想我给它的所有东西都是2.0版呢?

另一件事。

它认为运行时版本是V2.0.50727了一个在我的测试应用程序v4.0.30319

+0

你如何添加参考?您是否使用“添加库包”功能来下载程序集? – 2011-06-16 16:22:45

+0

@ Kyle Trauberman - 试图通过nuget让你“添加库包参考”并下载ninject。我试着去ninject站点并下载“Ninject-2.2.0.0-release-net-4.0”,然后去了“添加引用”,两者都得出了相同的结果。 – chobo2 2011-06-16 16:24:44

+0

您提到运行时版本显示为2.0。你在哪里看到?你可以右键点击你的项目,去属性,并验证你的目标框架设置为“.NET Framework 4”? – 2011-06-16 16:25:46

您可能有另一个引用旧版本ninject的项目,并且在运行时它将解析为该依赖项,而不是您认为的依赖项。

+0

我同意克里斯。您的项目引用另一个项目,第二个项目引用旧版本的ninject。 – 2011-06-16 16:38:07

在文本编辑打开该项目文件,并确保该参考是正确的。如果存在任何HintPath标签,请将其移除。

如果这不起作用,请尝试检查加载的程序集的位置。

string location = typeof(TypeInNinjectAssembly).Assembly.Location