VS2005 Web安装程序 创建程序菜单组
本示例的效果如下:
|FreeWebB-> |图标 OpenMyWeb
| |图标 UnstallMyWeb
|
|所有程序->|
开始->|
也就是将属于本程序相关的快捷菜单都放在一个程序文件夹下
主要代码如下:
public override void Install(System.Collections.IDictionary stateSaver)
{
base.Install(stateSaver);
#region 程序目录下自定义目录FreeWebB
string strVDir2 = Context.Parameters["VDIR"].ToString();
string address2 = @"http://localhost/" + strVDir2 + "/Default.aspx";
//取得启动目录
string startMenu = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
//取得程序目录
string processDir = startMenu.Substring(0, startMenu.LastIndexOf("\\"));
//判断 程序目录 下 自定义的软件目录FreeWebB是否存在
string freeWebDir = processDir + "\\FreeWebB";
if (!Directory.Exists(freeWebDir))
{
Directory.CreateDirectory(freeWebDir);
}
stateSaver.Add("processDirFreeWebB", freeWebDir);
//FreeWeb目录下的软件相关链接指向
string path2 = processDir + "\\FreeWebB\\OpenMyWeb.url";
//自定义的图标文件路径
string logoPath2 = new FileInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).Directory.FullName + "\\WebLogo.ico";
FileInfo fi2 = new FileInfo(path2);
using (StreamWriter sw2 = fi2.CreateText())
{
sw2.WriteLine("[InternetShortcut]");
sw2.WriteLine("URL=" + address2);
sw2.WriteLine("IconIndex=0");
sw2.WriteLine("IconFile=" + logoPath2);
}
stateSaver.Add("processFreeWebB", path2);
#endregion
}
public override void Uninstall(System.Collections.IDictionary savedState)
{
base.Uninstall(savedState);
if (File.Exists(savedState["processFreeWebB"].ToString()))
{
File.Delete(savedState["processFreeWebB"].ToString());
}
if (Directory.Exists(savedState["processDirFreeWebB"].ToString()))
{
Directory.Delete(savedState["processDirFreeWebB"].ToString(),true);
}
}
更多详细的安装包制作相关
请参看
[转]一次.NET Web应用程序安装包的制作经历:Sql数据库安装的3种方式 配置IIS及Web.Config文件
[转]asp.net 部署数据库、开始菜单、桌面快捷方式实例
posted on 2008-04-09 17:40 freeliver54 阅读(990) 评论(4) 编辑 收藏 举报