Web Services 使用WPF的C#--使用项目引用和添加到引用列表不起作用

hmmo2u0o  于 2022-11-15  发布在  C#
关注(0)|答案(1)|浏览(191)

在我的.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个,而且似乎会丢失对所有内容的引用。

***编辑补充:***事实证明,解决方案中许多项目的相对结构(我在这个问题的原始帖子中没有描述)是找到答案的关键。如果感兴趣,请查看下面我自己的答案。

对于如何解决此问题有什么建议吗?

oug3syen

oug3syen1#

我能够修复它基本如下:
我重构了目录结构。
之前是A-〉顶级GUI项目调用了B & C
B-〉包含A使用的项目(包括WPF,但不包括Web服务项目)的文件夹。
C-〉包含Web服务项目的文件夹
然后我把所有的C移到和B相同的层。把它们放在同一个文件夹里似乎可以“安抚”编译器。
我并不是说这是绝对必要的,也不是说它应该总是这样做,但它在我的情况下工作。
我还不得不在C项目中**重做一些代码,**以说明C文件夹(尤其是packages文件夹)中的不同层次,因为它仍然有遗留代码,就好像它是顶级项目一样。(特别是尼基塔·R的回答)
How to fix re-layering problem

相关问题