我在 CE5 和 WM6 上运行的安装程序中添加了一些自定义操作。该安装程序工作正常并且构建良好。然而,有一个烦恼。setup.dll 已部署到设备,此文件不是必需的。
我已经阅读了几个关于创建 setup.dll 文件、MSDN 甚至移动 SDK 的网站。他们都陈述了相同的步骤。
- 创建您的 C++ dll 项目。
- 确保输出名为 setup.dll。
- 在您的 cab 项目上单击 CE 设置 DLL,浏览应用程序文件夹,添加输出并选择您的设置项目。(您不能选择本地目录,它始终是目标机器上的目录)
现在这确实有效并生成了一个自定义 cab 安装程序。然而,如前所述,setup.dll 被复制到应用程序文件夹中,即使安装后不需要它(甚至卸载时也不需要)
我试图通过在其属性中将 exclude 设置为 true 来排除 setup.dll。所有这些都不包括文件a all,因此缺少setup.dll 时要构建的cab 文件。
因此,我得到的唯一解决方案是手动更改 cab .inf 文件
[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文件?