防止更改智能设备设置CAB上的依赖项

时间:2012-12-12 20:31:48

标签: windows-mobile dependencies installation cab smart-device

我是一个由shell和几个模块组成的Windows Mobile应用程序。每个模块都有自己的安装项目,用于生成安装它的CAB文件,还有一个用作shell的基础应用程序。我遇到的问题是每次我打开一个模块的解决方案(每个模块都有自己的解决方案,根据需要引用其他项目),Visual Studio刷新安装项目的依赖项,实际上打破了整个安装项目。

我遇到的两个主要问题是,第一个问题是安装CAB正在引入几个DLL的两个版本。一个来自紧凑框架,一个正常的' DLL。这会以指数方式膨胀CAB大小并导致警告,因为有两个具有相同名称的文件。

我遇到的第二个问题是每个模块的安装cab应该只包含模块DLL,而不是任何依赖项(因为它们都是shell CAB的所有部分)。但是,每次打开解决方案时,我都必须在构建CAB之前手动删除所有依赖项。

另外值得注意的是,这些项目已经检入Team Foundation Server,但不知何故设法在不签出的情况下进行更改。

我正在为Windows Mobile 5.1-6.5运行Visual Studio 2008,针对.NET 3.5 Framework进行开发。

我很感激有关这个问题的任何见解,因为每次我需要发布一个版本时,重新编写依赖项非常耗时。

1 个答案:

答案 0 :(得分:2)

智能设备CAB项目令人厌恶。它仅适用于最简单的部署(即使这样也是限制性的)。我们最终用于所有安装的解决方案是手动滚动INF文件(您可以使用当前CAB项目创建的基线INF文件),然后直接从批处理文件/命令行调用CABWIZ以生成安装CAB。这听起来很痛苦,但事实并非如此,而且它也适用于MSBUILD的自动化,因此构建部署包更容易实现自动化。