我正在使用Visual Studio 2008专业版。 我为Windows Mobile编写了一个应用程序,我想为此应用程序创建安装程序。它是怎么做的?
答案 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创建安装包。它允许您创建非常光滑的安装程序,以便通过桌面或设备安装进行安装。
(来源: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)
答案 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}