部署到目标设备的程序集太多(.NET 2.0 CF)

时间:2014-10-09 09:41:19

标签: .net deployment compact-framework .net-assembly smart-device

是否使用VS 2005并希望将我的.NET C#应用程序部署到设备(Scanner Honeywell 7600)

在设备上,.NET 2 CF(SP1)与Windows CE 5.0一起运行。

如果我在VS(智能设备 - > Windows CE 5.0 - >设备应用程序)中创建默认项目并只部署应用程序,一切正常。

现在,如果我添加一个程序集引用,例如 log4net 并且想要部署,很多其他程序集都部署到设备上。实际上太多,设备耗尽磁盘空间,请参阅以下VS consoloe输出:

  

部署'C:\ Windows \ assembly \ GAC_MSIL \ System \ 2.0.0.0__b77a5c561934e089 \ System.dll'
  部署'C:\ Windows \ assembly \ GAC_32 \ System.Data.OracleClient \ 2.0.0.0__b77a5c561934e089 \ System.Data.OracleClient.dll'
  部署'C:\ Windows \ assembly \ GAC_MSIL \ System.Deployment \ 2.0.0.0__b03f5f7f11d50a3a \ System.Deployment.dll'
  部署'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 aufdemDatenträgerzurVerfügung。
    ==========构建:1成功或最新,0失败,0跳过==========
  ==========部署:0成功,1失败,0跳过==========

问题: 为什么例如System.Drawing.dll和System.Data.OracleClient.dll部署到设备,它们是.NET Framework的一部分?设备上已经安装了.NET 2 CF,为什么要再次部署这些组件?

2 个答案:

答案 0 :(得分:1)

  

为什么要部署这些程序集?

因为log4net需要它们。

  

我该如何预防?

使用较小的日志记录库,或者只使用StreamWriter来自己滚动。

答案 1 :(得分:0)

您正在引用log4net的桌面版本,这导致Studio部署其所有依赖项,这基本上意味着“所有桌面.NET框架”显然不适合(或为此工作) )在设备上。您需要引用为Compact Framework构建的log4net版本。

你永远不应该看到Deploying 'C:\Windows\assembly\GAC_MSIL\*的CF项目。