【发布时间】:2016-03-20 02:34:45
【问题描述】:
Windows 8.1 Enterprise x64、Visual Studio 2015、MVC 5、EF 6、VS Online 使用 git
我是一个相对较新的 Visual Studio 开发人员(大约九个月),自从我开始使用引用和 NuGet 包以来,我一直非常困难。当我在周末关闭计算机时,我所有的参考资料都在周五正常工作。整个周末都没碰电脑,今天开机了,出现一大堆参考错误:
(总共有 6,262 个错误,但我显然无法截取整个内容。)
就像我说的那样,这种问题经常发生,令人难以置信的沮丧。我尝试过的事情:
- 确保实际引用了所有引发错误的引用
- 卸载/重新安装在 NuGet 中引发错误的包
- 彻底删除
packages文件夹的内容,让NuGet恢复(全部重装,视图和以前一样的错误) - 确保每个引用都设置为
Copy Local - 关闭解决方案,删除所有
bin和obj文件夹,重新启动计算机,清理,重建 - 确保所有必要的引用都在相关的
web.config中(在Views内部或在根目录中) - 检查 NuGet 选项以恢复丢失的包(没有出现,所有包都在我本地的
packages文件夹中) - 我确定我忘记在此处列出的其他内容
我对这些包和参考资料束手无策。每次都是不同的修复,这次我想不通。我是否错过了一些明显的修复,我忽略了一些东西?有没有办法在它工作时以某种方式进行备份,并在出现问题时恢复它?任何想法,无论是帮助解决当前问题还是解决潜在问题,都将不胜感激。
补充说明
问题不仅在于视图——控制器也会抛出错误。具体来说:
找不到类型或命名空间名称“Controller”(您是否缺少 using 指令或程序集引用?)
(字面意思是Controller,这不是我为了隐私或其他原因而改变的东西。)
尽管我对所有必要的命名空间都有using 语句,但这些仍然被抛出。 using 语句本身可以正常工作,但代码中会抛出错误。建议的自动修复是手动引用所有内容:例如,var sb = new StringBuilder(); 要我将行更改为var sb = new System.Text.StringBuilder();。测试该修复并不能纠正问题,同样的错误被抛出,但在 System 而不是 StringBuilder。
要求的其他信息
- 我将 git 与 VS Team Services 一起使用(但使用
.gitignore忽略包)。 - 我和另一个人在这方面工作,但另一个人在几周内根本没有碰过它(甚至没有从远程仓库中提取)。
-
.csproj文件中的引用采用..\..\..\packages\格式(对于相对于.csproj文件的位置正确)。 - 以 .NET 4.6 为目标(一直是,这不是新的)
- 所有参考文献均已解析,参考文献列表中没有感叹号。
【问题讨论】:
-
你使用版本控制吗?项目文件在工作和停止工作之间发生了什么变化?在这种情况下,更重要的问题是具有讽刺意味的警告,即未解决的引用。多人参与这个项目吗?
.csprojXML 中指定的引用究竟如何?它必须以..\packages开头,之前不能再添加点(假设您的.sln是您的.csproj的上一级目录)。 -
@CodeCaster 我在 VS Online 中使用 git,但
.gitignore忽略了包。我和另一个人在这方面工作,但另一个人在几周内根本没有碰过它(甚至没有从远程仓库中提取)。.csproj文件中的引用采用您指定的格式,是的。..\..\..\packages` (correct for the location relative to the.csproj` 文件)。 -
所有引用都解析了吗?您的目标是什么版本的 .Net Framework?
-
@DavidG 是的,所有引用都解决了。面向 .NET 4.6。
-
VS 中是否启用了包还原? “在 Visual Studio 中构建期间自动检查丢失的包”
标签: c# visual-studio visual-studio-2015 nuget azure-devops