我得到:
找不到类型或名称空间名称
VS2010中的C#WPF应用出现错误。这部分代码编译良好,但是突然我收到了此错误。我试着删除项目参考和using
语句,关闭VS2010并重新启动,但是仍然有这个问题。
任何想法为什么会发生这种情况,好像我在做正确的事情using
?
我还在VS2010中指出,该名称空间的intellisense可以正常工作,因此VS2010似乎具有项目参考并且一方面可以看到名称空间,但是在编译过程中没有看到它?
我得到:
找不到类型或名称空间名称
VS2010中的C#WPF应用出现错误。这部分代码编译良好,但是突然我收到了此错误。我试着删除项目参考和using
语句,关闭VS2010并重新启动,但是仍然有这个问题。
任何想法为什么会发生这种情况,好像我在做正确的事情using
?
我还在VS2010中指出,该名称空间的intellisense可以正常工作,因此VS2010似乎具有项目参考并且一方面可以看到名称空间,但是在编译过程中没有看到它?
Answers:
这可能是两个项目之间.Net框架版本不兼容的结果。
它可以通过两种方式发生:
例如,当将应用程序设置为以.Net 4 Client Profile框架为目标,而它引用的项目以整个.Net 4框架为目标时,就会发生这种情况。
因此,使它更清楚:
在这种情况下,解决方案是升级应用程序的框架目标(项目A)或降级引用程序集的目标(项目B)。完整框架应用程序可以引用/使用客户端配置文件框架程序集,但是不能相反(客户端配置文件不能引用以完整框架为目标的程序集)。
请注意,当您在VS2012或VS2013(使用.Net 4.5作为默认框架)中创建新项目时,也会出现此错误:
引用项目使用.Net 4.0(从VS2010迁移到VS2012或VS2013并添加新项目时,这很常见)
引用的项目使用的版本更高,即4.5.1或4.5.3(您已将现有项目重新定位为最新版本,但是VS仍会创建针对v4.5的新项目,然后从新项目)
重新安装nuget软件包对我有用。在将所有项目的.NET Framework版本更改为同步之后,仍为先前版本安装了某些nuget程序包(尤其是Entity Framework)。Packages Manager控制台中的以下命令将重新安装整个解决方案的软件包:
Update-Package –reinstall
Update-Package -reinstall
在所有解决方案中都遇到了几个错误,其中包括该程序包的另一个版本。我更新了所有内容,然后终于运行了。它还将package.json文件中的引用从45固定为452,因为我之前也更改了目标版本。
我不知道为什么这可行,但是我删除了VS2015告诉我找不到的项目参考,然后再次添加了它。解决了问题。我试过清理,构建和重新启动VS都无济于事。
构建解决方案时,我遇到了相同的错误(找不到类型或名称空间'')。在它下面,我看到一个警告,指出“无法解析引用”,并确保“程序集存在于磁盘上”。
我很困惑,因为我的DLL很清楚在引用所指向的位置。在我尝试构建解决方案之前,VS似乎并没有突出显示任何错误。
我终于意识到了问题所在(或者至少我怀疑是问题所在)。我在同一解决方案中构建库文件。因此,即使它存在于磁盘上,也正在该位置进行重建(以某种方式在库重建我的其他项目的过程中(在相同的解决方案中,引用该库的必须确定该库不存在))
当我右键单击该项目并仅构建该项目而不是整个解决方案时,我没有收到错误。
为了解决此问题,我将库添加为对使用它的项目的依赖。
去做这个:
这样可以确保首先构建库项目。
我遇到的一个棘手的情况是:项目一针对Microsoft.Bcl.Async
安装了软件包的4.0完整框架。项目2针对4.0完整框架,但在引用项目一类时将无法编译。
在第二个项目上安装Async NuGet软件包后,它可以正常编译。
我有一个类似的问题:编译器无法检测到同一项目中的文件夹,因此链接到该文件夹的using指令会产生错误。就我而言,问题源于重命名folder。即使我更新了该文件夹中所有类的名称空间,项目信息还是以某种方式无法更新。我尝试了所有操作:删除.suo文件以及bin和obj文件夹,清理解决方案,重新加载项目-没有任何帮助。我通过删除文件夹和其中的类,创建一个新文件夹并在该新文件夹中创建新类来解决了该问题(只是将类移到新文件夹中无济于事)。
PS:就我而言,我正在开发Web应用程序,但是在不同类型的项目中可能会出现此问题。
[Facepalm]我的问题是我以C ++的处理方式添加了依赖性。
转到无法构建的项目,在解决方案资源管理器中打开“参考”文件夹,然后查看是否列出了您的依赖项。
如果没有,您可以“添加引用”并在“项目”选项卡上选择依赖项。
繁荣香卡。
遇到相同的错误,我的故事如下:在错误合并(通过git)之后,我的.csproj文件之一具有重复的compile
条目,例如:
<Compile Include="Clients\Tree.cs" />
<Compile Include="Clients\Car.cs" />
<Compile Include="Clients\Tree.cs" /> //it's a duplicate
如果您有一个不错的解决方案,并且在错误窗口中收到了300多条消息,则很难检测到此问题。因此,我已经通过记事本打开了损坏的.csproj文件,并删除了重复的条目。就我而言。
您还可以尝试消除您认为遇到问题的代码,并查看其是否编译时没有对该代码的引用。如果没有,请解决问题,直到再次编译,然后再处理您怀疑的问题代码。有时,当编译器不喜欢其他类或方法时,我会得到一些关于我所知道的正确类或方法的奇怪错误。一旦我修复了真正挂起来的东西,这些“幻像”错误就会消失。
我知道这是一匹致命的马,但是我有这个错误,而且框架还不错。我的问题基本上是说找不到接口,但是它可以很好地构建和访问。所以我开始思考:“当其他人工作正常时,为什么只使用这个界面呢?”
最后,我实际上是使用WCF通过端点接口的实体实体版本6访问服务,而其余项目使用的是版本5。不是使用NuGet,我只是将nuget包复制到本地存储库中以供重用和使用。列出了不同的名称。
例如EntityFramework6.dll与EntityFramework.dll。
然后,我将引用添加到客户端项目和poof中,我的错误消失了。我意识到这是一个极端的情况,因为大多数人不会混合使用Entity Framework的版本。
将我的解决方案添加到混合中,因为这有点不同,我花了一些时间才弄清楚。
在我的情况下,我向一个项目添加了一个新类,但由于未设置版本控制绑定,因此需要使文件在Visual Studio外部(通过VC)可写。我已经取消了在Visual Studio中的保存,但是在VS外部使文件可写之后,我又在VS中再次单击全部保存。这无意间导致新类文件未保存在项目中。但是,即使在我尝试重新编译文件并没有找到该文件时,Intellisense在引用项目中仍将其显示为蓝色且有效。找不到类型错误。关闭并打开Visual Studio仍然显示此问题(但如果我记下重新打开后缺少类文件)。
一旦意识到这一点,修复就很简单:将项目文件设置为可写,然后将丢失的文件读取到项目中。现在一切都很好。
在我的情况下,问题是(有意地)将名称空间更改为与另一个项目中的名称完全相同后,程序集的名称也被VS更改,因此有两个具有相同名称的程序集,其中一个覆盖另一个
我在尝试使用本地代理作为本地计算机上运行的Visual Studio Team Services构建进行构建时遇到此错误。
它可以在我的常规工作区中正常工作,并且我可以在本地打开代理文件夹中的SLN文件,并且一切都可以正常编译。
有问题的DLL被存储在项目中,Lib/MyDLL.DLL
并在csproj文件中对此进行了引用:
<Reference Include="MYDLL, Version=2009.0.0.0, Culture=neutral, PublicKeyToken=b734e31dca085caa">
<SpecificVersion>False</SpecificVersion>
<HintPath>Lib\MYDLL.dll</HintPath>
</Reference>
事实证明,尽管有提示路径,但实际上找不到该文件。我认为msbuild可能是相对于SLN文件而不是项目文件。
无论如何,如果您收到的消息是 Could not resolve this reference. Could not locate the assembly
确保DLL位于msbuild的可访问位置。
我有点被骗了,发现一条消息说,Considered "Reference\bin\xxx.dll"
然后只是将dll复制到了那里。