在另一个项目中找不到 C# 类型或命名空间名称
C# Type or namespace name could not be found in another project
我在 VS 2013 解决方案中有 3 个 C# 项目,一个 WPF 项目和两个 class 库。每个项目都有自己的命名空间。
在一个项目中,我有一个名为 MainWindowViewModel 的 class 属于命名空间 ViewModels。
在另一个项目中,我有一个名为 BaseWindowViewModel 的 class 属于命名空间 ToolBox.Base。
BaseWindowViewModel 具有签名:
public abstract class BaseWindowViewModel : BaseViewModel, IBaseWindowViewModel
MainWindowViewModel 应该子class 这个class,像这样:
public class MainWindowViewModel : BaseWindowViewModel
我已经为第二个 class 设置了 using-references,我可以,例如MainWindowViewModel subclass any other (old) class or interface in the other project/namespace ToolBox.Base, 但出于某种原因 VS 找不到 BaseWindowViewModel,编译器也找不到它使用,所以我得到一个 "The type or namespace name 'BaseWindowViewModel' could not be found (...)" 错误。
有趣的是,我无法访问我在 ToolBox.Base 项目中添加的任何其他新 classes,但我可以访问旧的...
我尝试过的:
- 清理并重建所有项目/整个解决方案
- 复制并粘贴名称以确保它们正确无误spelled/cased
- 创建了一个添加相同项目的新解决方案
- 创建了一个新的空 class 以尝试通过 subclassing
访问它
- 以上是否也在两个项目中使用了全新的class
- 根据我在此处找到的内容检查所有项目的目标框架 (.NET Framework 4.5)
- 仔细检查项目引用,即使考虑到我可以访问引用项目中的旧 classes,它们应该没问题
- 吃了糖果...(对我的灵魂很好,但没有解决任何问题)
没有任何效果,除了:
- 将 BaseWindowViewModel.cs 文件复制到 ViewModels 项目,不更改任何内容,甚至不更改命名空间,保持文件完整
...但这对我的目的来说并不令人满意...
有什么想法吗?我马上就要秃头了...
事实证明,由于某种原因,一个新的 bin/Debug 目录已被创建,并且在构建 ToolBox.Base 项目时它进入了这个新目录,而另一个项目引用了旧目录!
我删除了这个项目的整个 bin 目录并重建了 ToolBox.Base 项目,然后删除并重新添加了对该项目的引用!
现在只是想知道新目录是怎么创建的...hmpf...无论如何,问题解决了! =)
我在 VS 2013 解决方案中有 3 个 C# 项目,一个 WPF 项目和两个 class 库。每个项目都有自己的命名空间。
在一个项目中,我有一个名为 MainWindowViewModel 的 class 属于命名空间 ViewModels。
在另一个项目中,我有一个名为 BaseWindowViewModel 的 class 属于命名空间 ToolBox.Base。
BaseWindowViewModel 具有签名:
public abstract class BaseWindowViewModel : BaseViewModel, IBaseWindowViewModel
MainWindowViewModel 应该子class 这个class,像这样:
public class MainWindowViewModel : BaseWindowViewModel
我已经为第二个 class 设置了 using-references,我可以,例如MainWindowViewModel subclass any other (old) class or interface in the other project/namespace ToolBox.Base, 但出于某种原因 VS 找不到 BaseWindowViewModel,编译器也找不到它使用,所以我得到一个 "The type or namespace name 'BaseWindowViewModel' could not be found (...)" 错误。
有趣的是,我无法访问我在 ToolBox.Base 项目中添加的任何其他新 classes,但我可以访问旧的...
我尝试过的:
- 清理并重建所有项目/整个解决方案
- 复制并粘贴名称以确保它们正确无误spelled/cased
- 创建了一个添加相同项目的新解决方案
- 创建了一个新的空 class 以尝试通过 subclassing 访问它
- 以上是否也在两个项目中使用了全新的class
- 根据我在此处找到的内容检查所有项目的目标框架 (.NET Framework 4.5)
- 仔细检查项目引用,即使考虑到我可以访问引用项目中的旧 classes,它们应该没问题
- 吃了糖果...(对我的灵魂很好,但没有解决任何问题)
没有任何效果,除了:
- 将 BaseWindowViewModel.cs 文件复制到 ViewModels 项目,不更改任何内容,甚至不更改命名空间,保持文件完整
...但这对我的目的来说并不令人满意...
有什么想法吗?我马上就要秃头了...
事实证明,由于某种原因,一个新的 bin/Debug 目录已被创建,并且在构建 ToolBox.Base 项目时它进入了这个新目录,而另一个项目引用了旧目录!
我删除了这个项目的整个 bin 目录并重建了 ToolBox.Base 项目,然后删除并重新添加了对该项目的引用!
现在只是想知道新目录是怎么创建的...hmpf...无论如何,问题解决了! =)