1

我有一个很难诊断的奇怪问题。将包含命名空间的程序集引用添加Matrix.System到 Windows 服务项目后,我现在在编译服务时收到此错误:

命名空间“Matrix.System”中不存在类型或命名空间名称“ComponentModel” 命名空间“Matrix.System”中不存在类型或命名空间名称“ServiceProcess”

错误是在服务中生成的:

private System.ComponentModel.IContainer components = null;
private System.ServiceProcess.ServiceInstaller serviceInstaller1;

在服务设置项目中,我得到了这个:

找不到程序集“Apache.NMS.ActiveMQ.dll”的依赖项“IONIC.ZLIB”(签名=“EDBE51AD942A3F5C”版本=“1.9.1.5”)

Matrix.SystemNMS 程序集已经在安装项目中,并且在我添加程序集之前一切正常

4

2 回答 2

4

您可以像这样“根”命名空间:

using global::System.ComponentModel;

(然后摆脱代码中的完全限定引用。)

或者,如果您真的想使用完全限定的命名空间:

private global::System.ComponentModel.IContainer components = null;
private global::System.ServiceProcess.ServiceInstaller serviceInstaller;

不过,这看起来与其他依赖问题无关。

我的猜测是,在同一个班级你有:

using Matrix;

否则我不希望它首先成为一个问题。

于 2012-07-07T08:40:36.420 回答
1

您需要system.componentmodel从 Nuget 管理包安装。因为system.componentmodel在 Microsoft 参考资料或系统中都没有。请注意,框架 2.0 不支持它,至少需要 .Net 框架 4.3

在此处输入图像描述

在此处输入图像描述

于 2021-05-09T12:04:39.047 回答