1

診断が難しいという奇妙な問題があります。名前空間を含むアセンブリ参照をMatrix.SystemWindowsサービスプロジェクトに追加した後、サービスのコンパイル時に次のエラーが発生します。

タイプまたは名前空間の名前'ComponentModel'は名前空間'Matrix.System'に存在しませんタイプまたは名前空間の名前'ServiceProcess'は名前空間'Matrix.System'に存在しません

ただし、エラーはサービスで生成されます。

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

そして、サービスセットアッププロジェクトで私はこれを取得しています:

アセンブリ'Apache.NMS.ActiveMQ.dll'の依存関係'IONIC.ZLIB'(Signature ='EDBE51AD942A3F5C' Version = '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.componentmodelNuget管理パッケージからインストールする必要があります。system.componentmodelマイクロソフトのリファレンスにもシステムにもありません。フレームワーク2.0ではサポートされていないことに注意してください。少なくとも.Netフレームワーク4.3が必要です。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

于 2021-05-09T12:04:39.047 に答える