请关注我,因为我是一名Java开发人员,只是在ASP.Net世界中趾高气扬
我开始在现有的C#VS2012代码库中编码。它使用nuget,在packages.config
中提到了Newtonsoft当我右键单击 Controllers > 添加新控制器,我收到以下错误。
无法加载文件或程序集
'nunit.framework, Version=2.2.4.0, Culture=neutral, PublicKeyToken=...'
或其中一个依赖项。系统找不到指定的文件。
现在浏览Google,似乎GAC缺少NUnit程序集。不知道该怎么办。我应该得到NUnit吗?为什么要寻找某个版本的nunit(& that too a old one)?
我将非常感谢您解决此问题的任何帮助!
答案 0 :(得分:5)
当您单击“添加新控制器”时,Visual Studio将尝试完成解析/构建以在窗口中填充它应该向您显示的许多值(使用可用的模型和可用视图)。它看起来像至少有一个项目缺少依赖项(可能是你的单元测试项目)。
NUnit 2.2.4.0确实是一个非常古老的版本,它甚至还没有在NuGet上存在(这本来是一个简单的修复)。 NUnit没有安装在GAC中是有道理的,因为您通常不会因为看起来可能而将所有内容都放在GAC中。如果您愿意升级到最新的NUnit版本,最简单的方法是add the NUnit NuGet package to your project through the Package Manage r。
我认为当您打开在记事本中生成此警告的项目的项目文件时,您会看到<hintpath>
标记作为NUnit参考的兄弟(它可能不在那里) )它指向它告诉Visual Studio查找NUnit的文件夹。
我suggest you install the NUnit version your project is looking for from here然后更新项目中的引用以指向正确的位置。这应该可以解决问题。
至于您对特定版本的评论,.NET程序集使用特定版本号进行编译(通常在AssemblyInfo.cs
中设置)项目文件中的引用可以是特定版本,也可以是任何程序集。该名称(突出显示解决方案资源管理器中的引用并检查属性窗口( ctrl + w , p 或 alt + 输入)。您将看到属性“特定版本”,在您的情况下设置为“true”,这导致Visual Studio将程序集版本存储在项目文件中。