我已经在CE5和WM6上运行的安装程序中添加了一些自定义操作。此安装程序工作正常,并构建良好。然而,有一个烦恼。 setup.dll已部署到设备,并且不需要此文件。
我已经阅读了几个关于创建setup.dll文件,MSDN甚至移动SDK的网站。他们都说明了相同的步骤。
现在这确实有效,并生成自定义的cab安装程序。但是如上所述,setup.dll被复制到应用程序文件夹中,即使安装后不需要它(甚至不用于卸载)
我尝试通过在其属性中将exclude设置为true来排除setup.dll。所有这一切都不包括文件一个所有的cab文件,因为setup.dll缺失。
因此,我到达的唯一解决方案是手动更改驾驶室。来自
的文件[DefaultInstall]
CEShortcuts=Shortcuts
AddReg=RegKeys
CopyFiles=Files.Common1,Files.Common2,Files.Common3,Files.Common4
CESetupDLL="Setup.dll"
到
[DefaultInstall]
CEShortcuts=Shortcuts
AddReg=RegKeys
CopyFiles=Files.Common1,Files.Common2,Files.Common3
CESetupDLL="Setup.dll"
Files.Common4在机器上本地指向setup.dll文件。执行此更改意味着它用于构建cab文件,但不会复制该文件。
无论如何在visual studio中进行此更改,还是总是手动编辑.inf文件以及使用cabwiz.exe手动编译cab文件?
答案 0 :(得分:1)
我有点困惑。您已经创建了一个setup.dll安装程序扩展,并将其包含在CAB中,但您不希望它在设备上?为了在CAB提取期间执行自定义操作,DLL必须位于CAB中并在设备上提取。
如果您不想在设备上使用它,只需从CopyFiles中省略它并从INF中删除CESetupDLL条目。显然,这样做意味着它定义的任何自定义操作都无法运行。
要明确的是,您引用的此DLL用于安装和/或卸载期间的自定义设备上操作。它不会提供任何桌面功能。