这很奇怪。
我安装了Visual Studio 2013。如果我创建一个新项目,Visual Studio会立即抱怨它找不到任何引用:
但是,即使错误列表中有警告,项目也能正确编译和运行:
如果我查看其中任何引用的属性,它们的路径都是空的。如果我加载一个现有的项目,Visual Studio可以找到它的引用并且不会抱怨,即使它的目标是与破坏的项目相同的.Net框架版本(我甚至将它们都放在同一个解决方案中相同的行为)。
我如何解决这个问题,以及可能导致这种情况发生的原因?欢迎提出任何建议,因为这令我感到困惑。
答案 0 :(得分:5)
感谢icemanind,我有答案。
我关闭了Visual Studio,删除了以下目录,现在一切正常了:
C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\12.0
C:\Users\<username>\AppData\Roaming\Microsoft\VisualStudio\12.0
答案 1 :(得分:3)
我遇到了这个问题,我通过关闭视觉工作室,重新开放视觉工作室,清理和重建解决方案来解决这个问题。这对我有用。在其他一些帖子中,我已经阅读了回复,大多数用户通过这种方式解决了问题。 另一种可能性是类库的目标.NET Framework版本高于项目的版本。
答案 2 :(得分:1)
这种情况经常发生在我身上,我总是怀疑VS腐败,但它总是被证明是用户错误。当我向解决方案添加新项目并尝试引用新添加的项目中的早期项目时,通常会发生这种情况。在这种情况下,通常,只有在引用相同或更早的.NET Framework版本时才能添加引用。在我的例子中,不一致的目标框架版本导致项目无法识别引用而不允许编译。双重检查一致性或适当的目标框架版本为我解决了这个问题。
答案 3 :(得分:0)
我遇到了现有项目的问题,通过创建一个新项目并比较csproj文件,我必须添加缺少的导入行,例如:一个在项目元素的开头,一个在结尾。
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
...
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
答案 4 :(得分:0)
我最近在VS 2017中发生过这种情况。我已经对csproj文件移动的项目进行了一些重构,然后将存储库克隆到新机器上。 csProj文件有.projects目录的多个位置。例如:
<Import Project="packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="packages\Microsoft.Net.Compilers.1.2.1\build\Microsoft.Net.Compilers.props" Condition="Exists('packages\Microsoft.Net.Compilers.1.2.1\build\Microsoft.Net.Compilers.props')" />
<Import Project=".\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('.\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project=".\packages\Microsoft.Net.Compilers.1.2.1\build\Microsoft.Net.Compilers.props" Condition="Exists('.\packages\Microsoft.Net.Compilers.1.2.1\build\Microsoft.Net.Compilers.props')" />
错误标签下面还有其他相对路径错误。
我查找了我复制的任何地方,不正确的包相对路径,并删除了不正确的路径。
这导致它为我建造。
祝你好运! -Mezz
答案 5 :(得分:0)
vs2015也有类似的问题。原来,文件已两次添加到.csproj
删除重复的行即可解决