C#中我看不到另一个命名空间中的引用类

6

我有两个项目:

  • ConstrainedScheduleInterfaces
  • ConstrainedSchedule含有一个文件夹(Testing),其中包含需要引用的类,以下为代码:

Tests.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using 
using NUnit.Framework;
using Ninject;
using ConstrainedScheduleInterfaces;

namespace ConstrainedSchedule.Testing
{
    internal static class Configuration
    {
      ...........
    }
}

我已经添加了对ConstrainedSchedule项目的引用,但是using ConstrainedScheduleInterfaces;被标记为找不到而显示成红色。 两个项目都设置了目标框架为.NET Framework 4.5。 需要帮助吗?谢谢。


1
不使用.NET Framework 4.5客户端配置文件? - T McKeown
你是否在测试项目的引用文件夹中添加了受限接口? - Mikey Mouse
这里不太清楚,我已经通过单击ConstrainedSchedule项目来添加引用了。 - Kay90
@TMcKeown 从.NET Framework 4.5开始,客户端配置文件已经停止使用,只提供完整的可再分发包。 - D.Rosado
@D.Rosada 很好!谢谢! - T McKeown
4个回答

19

这个项目是否引用了其他项目?你不能仅仅添加命名空间,这个项目本身需要一个程序集引用指向包含该命名空间的其他项目。

在 Visual Studio 中,打开“解决方案资源管理器”。右键点击“ConstrainedSchedule”项目,选择类似于“添加引用”的选项。在对话框中,选择“项目引用”(根据 Visual Studio 的版本,可能是选项卡或其他界面来表示作为解决方案一部分的项目)。选择“ConstrainedScheduleInterfaces”项目并添加引用。

更多信息 在此


1
是的,我已经在ConstrainedSchedule项目中添加了引用。我确保其他项目没有对其进行引用。啊,我使用的是VS2012。 - Kay90
2
@Kay90:此外,是否有一个名为ConstrainedScheduleInterfaces的实际命名空间?该项目可能被称为这个名字,但这并不保证这样的命名空间存在。您能否通过完全限定它来引用类型名称?它的完全限定名称是什么? - David
啊!谢谢!!!在“ConstrainedScheduleInterfaces”文件中,我发现命名空间另有名称!非常感谢您! - Kay90

7

对于其他遇到此问题的人,如果您已经将dll引用添加并确保在顶部使用了正确的命名空间,那么我发现还有另一件事可能会导致这种情况。

在Visual Studio中选择单击文件,然后选择属性。在属性的高级部分,查找生成操作。如果它不是编译,请将其更改为编译,然后再次尝试构建。


这是我的问题。由于某种原因,当我添加了几个类文件时,它们被标记为“内容”,而我没有意识到。这让我很疯狂。 - Darryn Frost

3
可能还有另一个原因: 目标框架不同。 我的主项目使用“.NET Framework 4.7.2”,而被引用的项目(从另一个解决方案链接)使用“.NET Framework 4.5.1”。
选择项目属性并更改目标框架。

2
在由于命名冲突而重命名项目和命名空间后,我遇到了这个问题。基本上,我的主要项目引用了我创建的一个名为 Common 的项目,但是我需要引用另一个开发者编写的名为 Common 的项目。在将我的项目重命名为类似 SpecificCommon 的名称之后,我能够在我的主项目中引用 Common 和 SpecificCommon 的引用。然而,所有对于 SpecificCommon 命名空间的引用现在都失效了。
起初,我以为这是与命名空间重构有关的问题,但事实证明,这是因为 SpecificCommon 和 Common 仍然具有相同的程序集名称(Common.dll)。在 SpecificCommon 属性中更改程序集名称并进行重建解决了我的问题。

这就是我的问题所在,我有两个不同名称的项目作为参考,但它们都输出相同的程序集名称Common.dll。我没有想到要检查这一点。 - Wungsow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接