在MVC3中添加控制器时出现异常 - 无法找到程序集文件

时间:2012-08-27 13:43:19

标签: c# asp.net-mvc-3 visual-studio-2010

我正在经历这个让我疯狂的奇怪问题。我在Visual Studio 2010中有一个MVC3项目,它曾经正常工作。出于某些奇怪的原因,当我尝试添加控制器时,我得到一个例外。 (见截图)。当我尝试添加视图时,对话框会在不事先通知的情况下关闭。

我已将Griffin.MvcContrib添加为NuGet包 - 它运行正常。我从未使用异常屏幕(版本1.1.2.0)中提到的程序集 - 但最新版本,1.1.2.1

我在我的解决方案中执行了全文搜索 - 找不到1.1.2.0。

我已经清空了缓存,重新安装了Visual Studio项目模板,删除了对Griffin.MvcContrib的引用(通过NuGet卸载),删除了Bin文件夹,重启了我的机器,到目前为止没有任何帮助。 :(

我的项目文件中的引用:

<Reference Include="Griffin.MvcContrib, Version=1.1.2.1, Culture=neutral, processorArchitecture=MSIL">
  <HintPath>..\..\packages\griffin.mvccontrib.1.1.2.1\lib\net40\Griffin.MvcContrib.dll</HintPath>
</Reference>
<Reference Include="Griffin.MvcContrib.Admin, Version=1.0.10.0, Culture=neutral, processorArchitecture=MSIL">
  <HintPath>..\..\packages\Griffin.MvcContrib.Admin.1.0.10\lib\net40\Griffin.MvcContrib.Admin.dll</HintPath>
</Reference>
<Reference Include="Griffin.MvcContrib.SqlServer, Version=1.0.8.0, Culture=neutral, processorArchitecture=MSIL">
  <HintPath>..\..\packages\Griffin.MvcContrib.SqlServer.1.0.8\lib\net40\Griffin.MvcContrib.SqlServer.dll</HintPath>
</Reference>

有人知道如何修复我的IDE / Project吗?

更新:重现的步骤:

Install-Package Griffin.mvccontrib -Version 1.1.2
Install-Package Griffin.MvcContrib.SqlServer

- 一切都好

Install-Package Griffin.MvcContrib.Admin

- &GT;强制将Griffin.mvccontrib更新为1.1.2.1

- &GT;导致例外,如附带的屏幕截图所示

以某种方式安装管理模块会强制更新mvccontrib。

enter image description here

3 个答案:

答案 0 :(得分:0)

我知道你已经搜索了,但再次检查,查看你的包文件和你的web.config - 寻找对Griffin.MvcContrib 1.1.2.0的引用

根据我的经验,无法加载该错误的程序集通常意味着版本冲突。

如果失败,您可以尝试在记事本中查看项目定义。

另外,请检查您是否安装了冲突版本。有时您可能在GAC中有一个版本并且引用另一个版本的裸.dll,这可能会导致冲突。

答案 1 :(得分:0)

问题源于你的参考文献中的一个dll,它是针对Griffin.MvcContrib 1.1.2.0构建的。所以很难找到。

如果你能逃脱它,你可以尝试删除对Griffin.MvcContrib的引用(如果你不需要它)或更改你的packages.config文件以引用1.1.2.0版本的MvcContrib而不是1.1。 2.1。

然后浏览所有.csproj文件并更正对1.1.2.0路径的引用,而不是1.1.2.1路径。

答案 2 :(得分:0)

临时解决方法是关闭解决方案,然后只打开要添加控制器的项目。它并没有解决冲突的引用问题,但它可以让你继续使用你想要做的任何事情。