是否使用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,为什么要再次部署这些组件?
答案 0 :(得分:1)
为什么要部署这些程序集?
因为log4net
需要它们。
我该如何预防?
使用较小的日志记录库,或者只使用StreamWriter
来自己滚动。
答案 1 :(得分:0)
您正在引用log4net的桌面版本,这导致Studio部署其所有依赖项,这基本上意味着“所有桌面.NET框架”显然不适合(或为此工作) )在设备上。您需要引用为Compact Framework构建的log4net版本。
你永远不应该看到Deploying 'C:\Windows\assembly\GAC_MSIL\*
的CF项目。