生成错误:命名空间"xxx.yyy.zzz"中不存在'data'的类型或命名空间名称(是否缺少程序集引用?



似乎很多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,没有运气;

奇怪的是,错误出现在干净构建或重建之后,然后在后续构建中消失(即使我进行了微小的更改,并全部保存)。

我已经尝试了其他人建议的许多更改,但没有一个可以解决此问题。其中包括对目标框架、平台、"复制到本地"、设置引用路径等的更改。

以下是我使用两种方法解决此问题的方法:

  1. 从启动器添加对项目适配器的引用。在启动器中,右键单击然后"添加引用",然后在对话框中的解决方案下选择"项目",检查适配器项目(实际引用是csproj,而不是dlls)。打好,重建和微笑;这是首选方法:添加项目引用而不是文件引用。简单易行!

  2. 这个技巧来自MikeTeeVee(涉及更多步骤):在我写这篇文章的时候,我注意到了一些事情:在Visual Studio 解决方案文件夹中存储引用的 Dlls

通过创建一个解决方案文件夹(虚拟)链接到包含所有要引用的 dll 的物理文件夹,它解决了上述问题。不知何故,在适配器的调试文件夹中添加对 dll 的引用不起作用。虚拟解决方案文件夹有助于解决参考问题。

所以我与那些可能有类似问题的人分享这些。哗啦啦!

最新更新