在我的.net解决方案(Visual Studio)的一个特定项目(用于Web服务)中,我添加了一个using指令:using ourSystem.Common.WPF
,我还将相应的引用(指向DLL)添加到项目文件中。
在我尝试添加WPF项目之前,Web服务项目的编译、生成和工作都很好。
当我添加WPF项目时,收到错误消息:
Error CS0234 The type or namespace name 'WPF' does not exist in the namespace 'ourSystem.Common' (are you missing an assembly reference?)
我在其他地方看过类似的关于堆栈溢出和网络帖子的问题,但似乎都不起作用。
看来问题一定是文件之间的某种不兼容。
注意:我正在处理的Visual Studio解决方案(VS 2019)有几个项目,并且此DLL/命名空间在许多其他项目中工作,只是不是我试图将其添加到的项目。
WPF项目和我试图引用它的项目都是v4.5.2,因此,至少对于该属性,它们应该是兼容的。
我也试过卸载项目,然后重新加载它们,这通常会将错误计数从大约4个(都是相同的消息)更改为超过100个,而且似乎会丢失对所有内容的引用。
***编辑补充:***事实证明,解决方案中许多项目的相对结构(我在这个问题的原始帖子中没有描述)是找到答案的关键。如果感兴趣,请查看下面我自己的答案。
对于如何解决此问题有什么建议吗?
1条答案
按热度按时间oug3syen1#
我能够修复它基本如下:
我重构了目录结构。
之前是A-〉顶级GUI项目调用了B & C
B-〉包含A使用的项目(包括WPF,但不包括Web服务项目)的文件夹。
C-〉包含Web服务项目的文件夹
然后我把所有的C移到和B相同的层。把它们放在同一个文件夹里似乎可以“安抚”编译器。
我并不是说这是绝对必要的,也不是说它应该总是这样做,但它在我的情况下工作。
我还不得不在C项目中**重做一些代码,**以说明C文件夹(尤其是packages文件夹)中的不同层次,因为它仍然有遗留代码,就好像它是顶级项目一样。(特别是尼基塔·R的回答)
How to fix re-layering problem