0

VS 2005 を使用しており、.NET C# アプリケーションをデバイス (Scanner Honeywell 7600) にデプロイしたい

デバイスでは、.NET 2 CF (SP1) が Windows CE 5.0 で実行されています。

VS で既定のプロジェクトを作成し (スマート デバイス -> Windows CE 5.0 -> デバイス アプリケーション)、アプリケーションをデプロイするだけで、すべて正常に動作します。

ここで、 log4netなどのアセンブリ参照を1 つ追加してデプロイする場合、多数の追加アセンブリがデバイスにデプロイされます。実際には多すぎて、デバイスのディスク容量が不足しています。次の VS コンソール出力を参照してください。

'C:\Windows\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll' を
展開していますdll'
Deploying 'C:\Windows\assembly\GAC_MSIL\System.Deployment\2.0.0.0__b03f5f7f11d50a3a\System.Deployment.dll'
Deploying 'C:\Windows\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System. Web.dll'
'C:\Windows\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll' を配置してい
ます' C:\Windows\assembly\GAC_MSIL\System.Configuration.Install\2.0.0.0 を配置しています__b03f5f7f11d50a3a\System.Configuration.Install.dll'
配置および/または登録が次のエラーで失敗しました: 0x8973190e。ファイル '%csidl_program_files%\scanandtrackdotnet\system.data.dll' の書き込みエラー。エラー 0x80070070: Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung.
========== ビルド: 1 成功または最新、0 失敗、0 スキップ ==========
========== デプロイ: 0 成功、1 失敗、0 スキップ ==========

質問: たとえば System.Drawing.dll と System.Data.OracleClient.dll がデバイスに展開されるのはなぜですか? これらは .NET Framework の一部です。.NET 2 CF は既にデバイスにインストールされているのに、なぜこれらのアセンブリを再度展開するのですか?

4

2 に答える 2

1

これらのアセンブリが展開されるのはなぜですか?

それらlog4netが必要だからです。

どうすれば防ぐことができますか?

より小さなロギング ライブラリを使用するか、単に を使用しStreamWriterて独自のものを作成します。

于 2014-10-09T10:30:11.227 に答える
0

デスクトップバージョンのlog4netを参照しています。これにより、Studioはすべての依存関係をデプロイします。これは基本的に、「すべてのデスクトップ.N​​ETフレームワーク」を意味します。デバイス。Compact Framework 用にビルドされたバージョンの log4net を参照する必要があります。

Deploying 'C:\Windows\assembly\GAC_MSIL\*CF プロジェクトでは決して表示されません。

于 2014-10-10T14:21:33.577 に答える