利用安装程序完成smartphone应用程序安装
前一篇文章讲了可以利用ceAppMgr来安装cab文件,这次使用windows的安装程序来实现。具体参见http://www.codeproject.com/netcf/PackagingAndDeployingPPC.asp
别人已经说得很明白了,我不多说,只把我照着做遇到问题的地方说一下。
1.基本原理和上一篇一样,只不过把各个动作使用程序来完成。首先对于一个项目的buildcab.bat文件保存到单独目录,因为每次生成都会把这个文件改掉,系统生成的那个又生不成正确的cab文件。
2.文章中提到MyProject.ini的文件,我是添加到MyProjectInstaller工程中了。个人感觉是应该和安装的cab文件放在一个目录下才行。
3.本来想修改MyProject.ini文件中的component项的值,然后把下面的也改掉,发现不好用,没有时间看怎么回事了,反正改回来就好用了。
4.那个MyProjectInstaller工程是个安装项目。
5.文章中提到的RunAppManager(string arg)方法就是一个调用ceAppMgr的方法,它使用注册表查找该文件。我考出来,省大家去那个网页找了。
别人已经说得很明白了,我不多说,只把我照着做遇到问题的地方说一下。
1.基本原理和上一篇一样,只不过把各个动作使用程序来完成。首先对于一个项目的buildcab.bat文件保存到单独目录,因为每次生成都会把这个文件改掉,系统生成的那个又生不成正确的cab文件。
2.文章中提到MyProject.ini的文件,我是添加到MyProjectInstaller工程中了。个人感觉是应该和安装的cab文件放在一个目录下才行。
3.本来想修改MyProject.ini文件中的component项的值,然后把下面的也改掉,发现不好用,没有时间看怎么回事了,反正改回来就好用了。
4.那个MyProjectInstaller工程是个安装项目。
5.文章中提到的RunAppManager(string arg)方法就是一个调用ceAppMgr的方法,它使用注册表查找该文件。我考出来,省大家去那个网页找了。
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
System.Windows.Forms.MessageBox.Show("Could not launch the WinCE Application Manager.");
}
}
{
// 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
System.Windows.Forms.MessageBox.Show("Could not launch the WinCE Application Manager.");
}
}