问答中心分类: C#找不到类型或命名空间名称[重复]
0
匿名用户 提问 1月 前

这个问题在这里已经有答案了:

获取“找不到类型或命名空间名称”,但一切正常?
(44个答案)

关闭7年前.

我有一个C#中的多个项目的解决方案Visual Studio 2010.PrjTest测试“”,另一个是Windows Forms Application项目(我称之为“PrjForm公司PrjForm还引用了第三个项目,它能够成功地引用和使用该项目。
PrjForm公司参考文献PrjTest测试PrjForm公司拥有一个using声明:

using PrjTest;
  1. 已正确添加引用
  2. using语句正确就位
  3. 拼写正确
  4. PrjTest生成成功
  5. PrjForm几乎构建,但在using PrjTest;带有错误的行:

找不到类型或命名空间名称“PrjTest”(是否缺少using指令或程序集引用?)
我尝试了以下方法来解决此问题:

  1. 删除了Resharper(因为Resharper很容易识别引用的项目,所以我认为值得一试)
  2. 删除并重新添加引用和使用语句
  3. 从头开始重新创建PrjForm
  4. PrjForm当前位于PrjTest文件夹内,我尝试将其移动到外部文件夹
  5. 已将解决方案加载到另一台计算机上,其中包含VS 2010

我已经做了家庭作业,花了太长时间在网上寻找答案,但没有一个解决方案有帮助。
我还能尝试什么?

15 Answers
0
DeepSpace101 回答 1月 前

就我而言,我有:
引用的DLL:.NET 4.5
项目:.NET 4.0
由于上述不匹配,4.0项目无法在4.5的命名空间中看到。DLL。我重新编译了。DLL到目标。NET 4.0,我很好。

Vee 回复 1月 前

我的一个项目从4.5更新到了4.5.2,并引发了这个问题。。。。

0
Dee 回答 1月 前

PrjForm被设置为“.Net Framework 4客户端概要文件”,我将其更改为“.Net Framework 4”,现在我已经成功构建了。

这对我也有用。谢谢。我尝试了一个用于dotNet的RDF示例,在中我从dotnetrdf下载了工具包。
NET4客户端配置文件:
NET4完整框架:NET4已满仅当客户端配置文件中未包含应用程序所需的功能或程序集时。这包括:

  • ASP。网络应用程序
  • 基于服务器端ASMX的web服务

如果使用旧客户端方案,例如:

  • 使用旧版Windows工作流

如果您针对开发人员场景,并且需要MSBuild之类的工具,或者需要访问System之类的设计程序集。设计动态链接库

rf_wilson 回复 1月 前

在我的案例中,我在一个解决方案中有三个项目。我必须把它们都设置为。Net Framework 4.5,然后我就可以编译了!令人恼火的是,错误消息具有误导性。

Rich_Rich 回复 1月 前

对我来说,这一切都没有帮助。然而,创建一个新项目、安装相同的NuGet包并复制代码就成功了。

0
Miebster 回答 1月 前

另一个可能导致此错误的原因是使用更新版本的构建NuGet包。净额。
原始错误:

frmTestPlanSelector.cs(11,7): error CS0246: The type or namespace name 'DatabaseManager' 
could not be found (are you missing a using directive or an assembly reference?)

进一步在日志中,我发现:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3275: The primary reference "[redacted]\DatabaseManager\bin\Release\DatabaseManager.dll" could not be resolved because it has an indirect dependency on the assembly "System.Data.SQLite, Version=1.0.94.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139" which was built against the ".NETFramework,Version=v4.5" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.0".
解决方案是重新安装NuGet软件包:
http://docs.nuget.org/docs/workflows/reinstalling-packages

roo2 回复 1月 前

这为我做到了,我的应用程序的目标是4.5.2,但单元测试是4.5,谢谢。

Mutmatt 回复 1月 前

这个!我关闭了警告,因为,你知道,警告。。。将其重新打开,就会立即显示错误。

0
kurdapya 回答 1月 前

我解决了我的问题,因为另一个项目是用编码的。NET 4.5,另一个代码为4.0

Andrew Grothe 回复 1月 前

我也有同样的问题。NET 4.0和。NET 4.0客户端配置文件。打得好。

0
Mark Byers 回答 1月 前

using语句引用了命名空间,不是项目.
确保在引用的项目中具有适当命名的命名空间:

namespace PrjTest
{
     public class Foo
     {
          // etc...
     }
}

阅读有关MSDN上名称空间的更多信息:

Anders 回复 1月 前

谢谢Mark,我确实有适当的名称空间。