开发和部署Pocket Pc 安装程序 原作者: Ralph Arvesen Vertigo Software, Inc. 发表于2003年3月MSDN C:/Program Files/Microsoft Visual Studio .NET
2003/CompactFrameworkSDK/v1.0.5000/Windows CE/../bin/../bin/cabwiz.exe"
"c:/program files/pocketpc deploy
sample/Source/CS/PocketApp/BuildCabs/PocketApp_PPC.inf" /dest
"c:/program files/pocketpc deploy
sample/Source/CS/PocketApp/BuildCabs/Cabs" /err CabWiz.PPC.log /cpu
ARMV4 ARM SH3 MIPS X86 WCE420X86
信息文件(.inf)Microsoft Windows® CE .NET .inf文件向cab向导指定了安装设置和应用程序文件。如buildcab.bat文件,当生成cab文件被选择时,Visual Studio生成一个模板.inf文件。你应该首先用Visual Studio生成这个文件,然后拷贝到另外的路径去做一些更改。这个文件通常需要很小的修改;通常修改Provider的名称就可以了。 Visual Studio生成一个.inf文件包含对vsd_setup.dll的引用。这个dll是用于版本检查以及假如Pocket PC没有正确的安装.Net精简板,报告这个信息。把它包含在你的应用程序中是一个好注意,但为了更清晰,我们把它从示例代码中移除了。 例子程序中的.inf如下所示。你可以访问Microsoft Windows CE .NET: Creating an .inf File获取多信息。 Signature="$Windows NT___FCKpd___1quot;
Provider="Sample Company"
CESignature="$Windows CE___FCKpd___1quot;
[CEStrings]
AppName="PocketApp"
InstallDir=%CE1%/%AppName%
[CEDevice]
VersionMin=3.00
VersionMax=4.99
[DefaultInstall]
CEShortcuts=Shortcuts
CopyFiles=Files.Common
[SourceDisksNames]
1=,"Common1",,"C:/Code/Microsoft/Pocket PC
Whitepapers/Deployment/Code/CS/PocketApp/obj/Release/"
[SourceDisksFiles]
PocketApp.exe=1
[DestinationDirs]
Files.Common=0,%InstallDir%
Shortcuts=0,%CE2%/Start Menu
[Files.Common]
PocketApp.exe,,,0
[Shortcuts]
PocketApp,0,PocketApp.exe,%CE11%
Cab向导Cab向导(cabwiz.exe)生成.cab文件,该文件可以被安装在不同的Pocket PC设备上。一个.inf文件作为命令行的第一个参数传递,用于向向导描述应用程序。其它可选参数为目的路径,错误日志文件,和CPU类型。你可以访问You can visit Microsoft Windows CE .NET: CAB Wizard Syntax获取更多的信息。 安装组件 自定义安装组件通过处理AfterInstall和AferUnInstall事件以及运行WinCE应用程序管理器实现部署过程自动化。WinCE应用程序管理器的路径存储在注册表HKLM/software/Microsoft/Windows/CurrentVersion/App Paths/CEAppMgr.exe健值下。下面是AfterInstall和AferUnInstall事件的代码。 C#
private void Installer_AfterInstall(object sender,
System.Configuration.Install.InstallEventArgs e)
{
// get fullpath to .ini file
string arg = Path.Combine(
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
"Setup.ini");
// run WinCE App Manager to install .cab file on device
RunAppManager(arg);
}
private void Installer_AfterUninstall(object sender,
System.Configuration.Install.InstallEventArgs e)
{
// run app manager in uninstall mode (without any arguments)
RunAppManager(null);
}
private void RunAppManager(string arg)
{
// get path to the app manager
const string RegPath = @"Software/Microsoft/Windows/" +
@"CurrentVersion/App Paths/CEAppMgr.exe";
RegistryKey key = Registry.LocalMachine.OpenSubKey(RegPath);
string appManager = key.GetValue("") as string;
if (appManager != null)
{
// launch the app
Process.Start(
string.Format("/"{0}/"", appManager),
(arg == null) ? "" : string.Format("/"{0}/"", arg));
}
else
{
// could not locate app manager
MessageBox.Show("Could not launch the WinCE Application Manager.");
}
}
VB.Net
Private Sub Installer_AfterInstall(ByVal sender As Object, _
ByVal e As System.Configuration.Install.InstallEventArgs) _
Handles MyBase.AfterInstall
' get fullpath to .ini file
Dim arg As String = Path.Combine(Path.GetDirectoryName( _
System.Reflection.Assembly.GetExecutingAssembly().Location), _
"Setup.ini")
' run WinCE App Manager to install .cab file on device
RunAppManager(arg)
End Sub
Private Sub Installer_AfterUninstall(ByVal sender As Object, _
ByVal e As System.Configuration.Install.InstallEventArgs) _
Handles MyBase.AfterUninstall
' run app manager in uninstall mode (without any arguments)
RunAppManager(Nothing)
End Sub
Private Sub RunAppManager(ByVal arg As String)
' get path to the app manager
Const RegPath As String = "Software/Microsoft/Windows/" & _
"CurrentVersion/App Paths/CEAppMgr.exe"
Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey(RegPath)
Dim appManager As String = CStr(key.GetValue(""))
If Not (appManager Is Nothing) Then
If arg Is Nothing Then
Process.Start(String.Format("""{0}""", appManager))
Else
' launch the app
Process.Start( _
String.Format("""{0}""", appManager), _
String.Format("""{0}""", arg))
End If
Else
' could not locate app manager
MessageBox.Show("Could not find app manager")
End If
End Sub
Setup.ini文件.ini文件用于在WinCE应用程序管理器向Pocket PC设备部署应用程序时,描述应用程序信息。下面所示的是Setup.ini的例子。你应该在你的应用程序中设置Version,Description和CabFiles属性。你可以访问Microsoft Windows CE 3.0: Creating an .ini File for the Application Manager 去获取更多的关于.ini文件的信息。 [CEAppManager] Version = 1.0 Component = App [App] Description = Sample Pocket PC application. CabFiles = PocketApp_PPC.X86.CAB,PocketApp_PPC.ARM.CAB,PocketApp_PPC.ARMV4.CAB, PocketApp_PPC.MIPS.CAB,PocketApp_PPC.SH3.CAB,PocketApp_PPC.WCE420X86.CAB .msi文件 |
开发和部署Pocket Pc 安装程序
最新推荐文章于 2019-01-31 19:15:05 发布