Visual Studio参考版本和包版本

Visual Studio reference version and package version

我一直在尝试更新我的 Ninject 不符合 this bug 并且我无法弄清楚我有什么版本的 Ninject.Web.Common

这是来自 packages.config

的一行

package id="Ninject.Web.Common" version="3.2.3.0" ...

但是,csproj 包含以下行

Reference Include="Ninject.Web.Common, Version=3.2.0.0 ..."

这里的参考版本到底是什么意思?

packages.config 中的版本是 nuget 将从服务器获取的版本。所以当你 运行 nuget restore 这将是下载的版本。

第二个是您的程序集在 运行 时搜索的版本。如果你不从 GAC 加载你的依赖项,版本将被忽略。仅当您的应用程序从 GAC 加载其程序集时,才会考虑该版本,并且 CLR 会尝试查找具有指定版本的程序集。因为在 GAC 中可以存在同一个程序集的多个版本。

查看此 Question 以了解有关编译时依赖性的详细信息。