VS2008,Windows Mobile Installer项目

时间:2009-02-22 12:28:45

标签: c# .net-3.5 windows-mobile installer

我正在使用Visual Studio 2008专业版。 我为Windows Mobile编写了一个应用程序,我想为此应用程序创建安装程序。它是怎么做的?

6 个答案:

答案 0 :(得分:13)

您需要将应用程序打包在CAB文件中。

要做到这一点非常简单 - 您只需创建一个新的“智能设备CAB项目”(New Projet->其他项目类型 - >设置和部署)。

首先 - 指定您希望应用程序的exe项目的输出与任何其他相关的dll一起进入应用程序目录。

您可能还需要通过右键单击目标计算机上的文件系统,选择添加特殊文件夹 - >开始菜单文件夹,然后在开始菜单文件夹中再次右键单击并选择创建新快捷方式,为应用程序创建图标。现在将此快捷方式指向应用程序的exe。

根据项目的要求,可能还需要创建一个桌面安装程序(msi文件),用户可以直接在其Windows PC上运行,这指示ActiveSync在Windows Mobile设备上自动安装cab文件接下来插入。基本上这是通过从命令行调用ActiveSync(CeAppMgr.exe)并向其传递引用cab文件的ini文件来完成的。

如果您在安装过程中需要做更复杂的事情,也可以编写一个“自定义操作”,其中cab文件调用另一个dll(由您编写)来执行需要执行的任何其他步骤在安装过程中。

上述所有内容的综合指南here

答案 1 :(得分:2)

Mobile Packager(www.MobilePackager.com)等工具也可用于为Windows Mobile创建安装包。它允许您创建非常光滑的安装程序,以便通过桌面或设备安装进行安装。

Mobile Packager On Device Installation
(来源:mobilepackager.com

检查出来

答案 2 :(得分:1)

http://msdn.microsoft.com/en-us/library/bb158729.aspx

在这里,您可以找到解决问题的方法。此外,还有一些软件可以直接在VS2008环境之外创建CAB文件,但我尝试过的所有软件都是令人讨厌且很省钱的。

答案 3 :(得分:1)

我自己的经验是,创建在Windows下运行的设置文件的成本太高(除非您只是在讨论创建输出CAB的安装项目,这需要针对.NET框架的其他设置过程,并且只能运行你的WM机器内部。)

“官方”程序包括生成CAB文件,使您的CAB文件“自动运行”的附加DLL,以及安装该DLL的其他安装项目。

如果您这样做,请参阅此处: http://msdn.microsoft.com/en-us/library/bb158529.aspx

经过几天的挣扎,我决定购买商业产品来自动创建设置文件。我购买的那个名为“PocketPC Installer Professional”(因为我与这个商业产品无关)。生成的设置与通常的Windows软件设置看起来并不相似,但至少它可以工作并且需要更少的工作量。

答案 4 :(得分:0)

感谢您的回复。我找到了这个教程:Installer


最好的:Satellite Forms KnowledgeBase

答案 5 :(得分:0)

这是InnoSetup(带预处理器)脚本的一个非常基本的示例,用于为Windows移动设备创建桌面安装程序。您必须已经创建了CAB并且为此编写了.ini才能正常工作。

#define AppName "Your Software"
#define AppPublisher "Your Name Here"
#define ExeName "Your Software.exe"
#define UnixName "YourSoftware"
#define Short "YS"
#define Version "1.0"

[Setup]
AppName={#AppName}
AppVerName={#AppName} {#Version}
AppPublisher={#AppPublisher}
DefaultDirName={pf}\{#AppName}
DefaultGroupName={#AppName}
AllowNoIcons=yes
LicenseFile=license.rtf
OutputDir=//
OutputBaseFilename={#Short}_{#Version}_Setup
SetupIconFile=Icons\{#UnixName}.ico
Compression=lzma
SolidCompression=yes

[Languages]
Name: english; MessagesFile: compiler:Default.isl

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Registry]
Root: HKLM; Subkey: Software\{#Short}; ValueType: string; ValueName: Version; ValueData: {#Version}; Flags: uninsdeletekey

[Files]
Source: license.rtf; DestDir: {app}; Flags: ignoreversion
Source: {#UnixName}_{#Version}_Setup.CAB; DestDir: {app}; Flags: ignoreversion
Source: {#UnixName}_{#Version}_Setup.ini; DestDir: {app}; Flags: ignoreversion

[Icons]
Name: {group}\{#AppName}; Filename: {app}\{#ExeName}
Name: {group}\{cm:UninstallProgram,{#AppName}}; Filename: {uninstallexe}
Name: {userdesktop}\{#AppName}; Filename: {app}\{#ExeName}; Tasks: desktopicon
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#AppName}; Filename: {app}\{#ExeName}; Tasks: quicklaunchicon

[Run]
Filename: "{pf64}\Microsoft ActiveSync\CEAPPMGR.EXE"; Parameters: ""{app}\{#UnixName}_{#Version}_Setup.ini""; Check: Is64BitInstallMode; WorkingDir: {app}
Filename: "{pf32}\Microsoft ActiveSync\CEAPPMGR.EXE"; Parameters: ""{app}\{#UnixName}_{#Version}_Setup.ini""; Check: not Is64BitInstallMode; WorkingDir: {app}