2

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

我有两个与此相关的主要问题,第一个是安装程序 CAB 正在拉入多个 DLL 的两个版本。一个来自 Compact Framework,另一个是“普通”DLL。这会使 CAB 大小呈指数增长并导致警告,因为有两个同名文件。

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

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

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

我将不胜感激有关此问题的任何见解,因为每次我需要进行发布时都重新处理依赖项非常耗时。

4

1 回答 1

2

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

于 2012-12-12T23:28:45.833 回答