似乎很多ppls都遇到这种错误:
命名空间"xxx.yyy.zzz"中不存在类型或命名空间名称"data"(是否缺少程序集引用?
我已经搜索了所有可以尝试找到解决方案的地方。事实证明,发生此错误的原因有很多。
我在一个解决方案下有两个 c# 项目(启动器和适配器)。该错误与适配器 dll 中定义并在启动器控制台应用中引用的命名空间有关。
setup & environment:
target framework: 4.51
platform target: x64
Adaptor dll was built and placed in the debug folder of adaptor
Reference in launcher was added to point to the adaptor dll;
Symptome:
Rebuilding both projects separately, Ok;
When I rebuilt the solution, I got the error;
When I did a clean and build, I got the error;
If I built it a again, it succeeded;
以下是我尝试过但没有成功的方法:适配器引用属性的"复制到本地"=T/F,没有运气;更改适配器引用属性的"特定版本"=T/F,没有运气;
奇怪的是,错误出现在干净构建或重建之后,然后在后续构建中消失(即使我进行了微小的更改,并全部保存)。
我已经尝试了其他人建议的许多更改,但没有一个可以解决此问题。其中包括对目标框架、平台、"复制到本地"、设置引用路径等的更改。
以下是我使用两种方法解决此问题的方法:
-
从启动器添加对项目适配器的引用。在启动器中,右键单击然后"添加引用",然后在对话框中的解决方案下选择"项目",检查适配器项目(实际引用是csproj,而不是dlls)。打好,重建和微笑;这是首选方法:添加项目引用而不是文件引用。简单易行!
-
这个技巧来自MikeTeeVee(涉及更多步骤):在我写这篇文章的时候,我注意到了一些事情:在Visual Studio 解决方案文件夹中存储引用的 Dlls
通过创建一个解决方案文件夹(虚拟)链接到包含所有要引用的 dll 的物理文件夹,它解决了上述问题。不知何故,在适配器的调试文件夹中添加对 dll 的引用不起作用。虚拟解决方案文件夹有助于解决参考问题。
所以我与那些可能有类似问题的人分享这些。哗啦啦!