VS2010中创建安装项目 vs2010如何创建项目

这里简单介绍如何在VS2010开发环境下制作安装项目,其中包括如何设置开机启动、删除注册表及安装后自动运行,加上卸载功能。

1、 创建安装项目

打开VS2010,点击菜单上的“文件”>>“新建”>>“项目”,弹出如下对话框。

如上图所示,在“其他项目类型”中选择“安装项目”,根据自己的需求命名,这里命名为“MySetup”,选择保存路径。这样就创建了一个安装项目。

2、在安装项目中添加其他应用程序项目
点击菜单上的“文件”>>“添加”>>“现有项目”,弹出如下对话框。

这里选择之前已经做好的一个WPF应用程序项目

3、将WPF的可执行文件(.exe)、类库(.dll文件)及所需图片加入安装项目中
右击“MySetup”>>“视图”>>“文件系统”,主窗口显示文件系统界面,如下图

右击“应用程序文件夹”>>“添加”>>“项目输出”,弹出如下对话框。

在“项目”选项中选择“DataServiceHost”,按住“Ctrl”键,选中“主输出”和“内容文件”,单击“确定”。
再右击“应用程序文件夹”>>“添加”>>“文件夹”,命名为“Images”,在“Images”中放入应用程序需要的图片,右击“Images”>>“添加”>>“文 件”,在弹出的对话框中添加所需的图片。

4、创建快捷方式
在“应用程序文件夹”中右击“主输出来自DataServiceHost(活动)”,如下图。

VS2010中创建安装项目 vs2010如何创建项目

点击“创建主输出来自DataServiceHost(活动)的快捷方式”,将快捷方式重命名为“我的WPF应用程序”,这里可以根据需要命名。
在“文件系统”中的“用户的“程序”菜单”添加文件夹“我的WPF应用程序”,这里可以根据需求命名,将之前“我的WPF应用程序快捷方式”剪切到该文件夹中。
同理可以在“文件系统”中的“用户桌面”中创建快捷方式。(在用户桌面中不要添加文件夹)

5、实现安装程序卸载
这里直接引用了Windows系统中自带的一个卸载程序,该卸载程序在“C:/Windows/System32”文件夹中,名称为“msiexec.exe”,右击“应用程序文件夹”>>“添加”>>“文件”,将“msiexec.exe”加入“应用程序文件夹”中

同步骤4,创建卸载程序的快捷方式,这里建议不要在“用户桌面”中创建卸载程序,难看!!!
重点,“卸载快捷方式”的属性“Argument”值设为“/x{710AD120-3D4C-430D-A9FA-A1D504465CC8}”,其中“{710AD120-3D4C-430D-A9FA-A1D504465CC8}”可在“MySetup”属性框口中找到。左击“MySetup”(不是右击),再点击属性窗口,如下图。

“ProductName”属性值就是上述的“{710AD120-3D4C-430D-A9FA-A1D504465CC8}”。

6、改变各快捷方式的图标
这里只拿“我的WPF应用程序快捷方式”为例,其他同理。
在“应用程序文件夹”中的“Images”中添加需要的“.ico图标”,这里添加一个“mywpf.ico”图标。如下图。

右击“我的WPF应用程序快捷方式”>>“属性窗口”,属性窗口如下图。

设置“Icon”属性,选择“Images”中的“mywpf.ico”图标。

7、实现开机启动
右击“MySetup”>>“视图”>>“注册表”,主窗口显示如下图。

在“HKEY_LOCAL-MACHINE”文件夹下新建键“Software”>>“Microsoft”>>“Windows”>>“CurrentVersion”>>“Run”,在“Run”文件夹新建字符串值,命名为“DataServiceHost.exe”,可根据需求命名,右击“DataServiceHost”>>“属性窗口”,其中“Value”属性设为“[TARGETDIR]DataServiceHost.exe”。如此,便实现了开机启动。

8、实现安装后自动运行及删除注册表
实现这两个功能就需要一些技巧,点击菜单上的“文件”>>“添加”>>“新项目”,如下图。

在“HKEY_LOCAL-MACHINE”文件夹下新建键“Software”>>“Microsoft”>>“Windows”>>“CurrentVersion”>>“Run”,在“Run”文件夹新建字符串值,命名为“DataServiceHost.exe”,可根据需求命名,右击“DataServiceHost”>>“属性窗口”,其中“Value”属性设为“[TARGETDIR]DataServiceHost.exe”。如此,便实现了开机启动。

8、实现安装后自动运行及删除注册表
实现这两个功能就需要一些技巧,点击菜单上的“文件”>>“添加”>>“新项目”,如下图。

选择“安装程序类”,命名为“Installer”。
在“Installer.cs”代码中重写如下方法:
/// <summary>
/// 函数入口——主函数
/// </summary>
public static void Main()
{

}

public Installer1()
{
InitializeComponent();
}

/// <summary>
/// 重写安装完成后函数
/// 实现安装完成后自动启动已安装的程序
/// </summary>
/// <paramname="savedState"></param>
protected override void OnAfterInstall(IDictionarysavedState)
{
base.OnAfterInstall(savedState);
}

/// <summary>
/// 重写安装过程方法
///
/// </summary>
/// <paramname="stateSaver"></param>
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
}

protected override void OnBeforeInstall(IDictionarysavedState)
{
base.OnBeforeInstall(savedState);
}

/// <summary>
/// 重写卸载方法
/// </summary>
/// <paramname="savedState"></param>
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);

}

/// <summary>
/// 重写卸载完成后函数
/// 实现安装完成后自动删除注册表
/// </summary>
/// <paramname="savedState"></param>
protected override void OnAfterUninstall(IDictionarysavedState)
{
base.OnAfterUninstall(savedState);
}

/// <summary>
/// 重写回滚方法
/// </summary>
/// <paramname="savedState"></param>
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
}
这里对protected override void OnAfterInstall(IDictionarysavedState){}和protected override void OnAfterUninstall(IDictionarysavedState){}进行如下自定义操作(当然也可以对其它方法进行自定义以实现其它功能)。
protected override void OnAfterInstall(IDictionarysavedState)
{
base.OnAfterInstall(savedState);
Assembly asm = Assembly.GetExecutingAssembly();
string path = asm.Location.Remove(asm.Location.LastIndexOf("\")) +"\";
try
{
System.Diagnostics.Process.Start(path + "\DataServiceHost.exe");
}
catch (Exception my)
{
throw new Exception(my.Message);
}
}

protected override voidOnAfterUninstall(IDictionary savedState)
{
base.OnAfterUninstall(savedState);
RegistryKey hklm = Registry.LocalMachine;
RegistryKey run =hklm.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionRun");
try
{
run.DeleteValue("DataServiceHost.exe");
run.Close();
hklm.Close();
}
catch (Exception my)
{
throw new Exception(my.Message);
}
}
自定义操作完成后,一定要将应用程序生成,这样就可以得到“.dll”文件。
生成成功后,就可以将该“.dll”程序集添加到安装项目中。右击“MySetup”>>“视图”>>“自定义操作”,主窗口如下图。

右击“安装”>>“添加自定义操作”,弹出如下对话框。

在“应用程序文件夹”中添加程序集,在之前“InstallService应用程序”中debug文件夹中找到“.dll”文件,添加进去。这样便实现了安装后自动运行和卸载后删除注册表的功能。

9、最后一步
右击“MySetup”>>“生成”,成啦!!!在安装项目中Debug文件夹中找到“Setup.msi”,双击就可以安装了….

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/237332.html

更多阅读

如何在unity3d中创建天空 unity3d 天空盒子

如何在unity3d中创建天空——简介我们玩各种各样的网络游戏,都会给人一种感觉,那就是觉得这个游戏世界似乎很大、很宽广。这里主要是因为天空盒的原因。有了天空盒,会突然让玩家觉得,这个游戏世界很美,很大。这里简单介绍一下如何在unity

手机中病毒的危害和如何清理 手机病毒怎么清理

手机中病毒的危害和如何清理——简介 对于手机中病毒的用户来说一定要及时的清理,否则会对我们的手机和个人信息及财产造成威胁。手机病毒都具备相应的传染性和破坏性,机上网支付等功能也呈现更为全面的趋势。那么,手机中毒后不能及时

如何安装apk文件?apk怎么安装? mac如何安装apk文件

我们知道安卓手机软件程序均为APK格式文件,很多小白朋友对于安卓手机如何安装apk文件不是很了解,下面本文于大家简单介绍下。由于很多朋友使用一些手机应用软件里面下载安装程序,但那仅仅是针对Wifi用户很方便,而没有Wifi用户因流量过

手机中总是有垃圾信息如何解决 ipad总是收到垃圾短信

手机中总是有垃圾信息如何解决——简介 我们手机用户总是有很多人的手机都会收到一些垃圾短信,对于手机的垃圾信息每天都会烦躁到我们的正常生活,我们可以使用手机的相关垃圾信息拦截软件对这些进行拦截,此外手机设置也是很重要的,我们

怎样在控制面板中创建关联 文件夹选项中创建关联

怎样在控制面板中创建关联——简介大家在平时使用电脑的过程中,可能会遇到一些文件关联的问题,比如说,Windows操作系统提醒“该文件没有程序与之关联来执行该操作,请在控制面板的文件夹选项中创建关联”,因此这里我将向大家介绍一下如何

声明:《VS2010中创建安装项目 vs2010如何创建项目》为网友何九哥哥分享!如侵犯到您的合法权益请联系我们删除