当前位置:职场发展 > vs2010安装启动程序_在VS2010中创建安装工程(自定义安装类)

vs2010安装启动程序_在VS2010中创建安装工程(自定义安装类)

  • 发布:2023-10-04 11:15

最近在做一个Socket服务器程序。调试成功后,打算将其做成Windows服务。这是我第一次操作,所以先在网上查了一些资料,最后完成了服务。特殊记录如下。

第一步,创建一个Windows应用程序(我创建了一个控制台程序,WinForm也是如此)

接下来,将 Windows 服务类添加到项目中

然后双击“MainService.cs”,右键单击它并“打开代码”

这里是服务的具体实现。以下是我写的示例代码

部分类 MainService : ServiceBase

{

?私有 CETCBackServer cetcBackServer;

? ? ? ?私有 IContainer 组件 = null;

? ? ? ? private ILog log = LogManager.GetLogger("CETCService");

? ? ? ?公共CETCService()

? ? ? ? {

? ? ? ? ? ? this.InitializeComponent();

? ? ? ? }

? ? ? ? protected override void Dispose(布尔处理)

? ? ? ? {

? ? ? ? ? ? if (处理 && (this.components != null))

? ? ? ? ? ? {

? ? ? ? ? ? ? ? this.components.Dispose();

? ? ? ? ? ? }

? ? ? ? ? ? base.Dispose(处置);

? ? ? ? }

? ? ? ? private void InitializeComponent()

? ? ? ? {

? ? ? ? ? ? this.components = new Container();

? ? ? ? ? ? base.ServiceName = "Service1";

? ? ? ? }

? ? ? ? protected override void OnStart(string[] args)

? ? ? ? {

? ? ? ? ? ? this.cetcBackServer = new CETCBackServer();

? ? ? ? }

? ? ? ?受保护的覆盖 void OnStop()

? ? ? ? {

? ? ? ? ? ? this.cetcBackServer.Dispose();

? ? ? ? ? ? www.sychzs.cn("停止服务");

? ? ? ? }

}

第二步右键完成刚才的服务类,点击视图设计器,添加安装程序。

项目中添加了ProjectInstaller.cs文件,该文件中视图组件会自动添加两个

serviceProcessInstaller1

服务安装人员1

您可以看到以下文件和组件已添加到项目中。 serviceProcessInstaller1 和 serviceInstaller1 是自动生成的

第三步?

设置组件serviceInstaller1的主要属性。 ServiceName:服务系统标识符。在cmd命令中执行sr start/stop/query等命令时使用。它用于唯一标识一个Window服务。这点一定要注意,不要搞混了。知道了!

设置ServiceName的值,代表系统服务中的名称

设置开始类型。如果是手动,则将手动启动。默认情况下它将停止。如果是自动,它将自动启动。

设置描述并添加服务描述

设置组件serviceProcessInstaller1的主要属性,Account:账户类型,LocalSystem本地系统服务;

然后重新生成项目,生成成功!

至此,我们只完成了第一部分。下一步是安装、卸载和调试服务。我在这里度过了很多时间。

------------------------------------------------------------ - - - - - - - - - - - - - 分向線 - - - - - - - - - - - - --- ---------------------------------------------------------- ---

安装服务的第一步?一开始程序生成成功,直接启动EXE,提示我“无法从命令行或调试器启动服务。必须先安装Windows服务(使用installutil.exe),然后使用ServerExplorer,启动使用 Windows Server 管理工具或 NET START 命令”!

然后

1。在所有程序中打开VS,并以管理员身份打开VS命令提示符!

2。记住这一步!检查项目的运行环境,确定FrameWork的版本。我这里用的是2.0版本。于是我将C:\Windows\www.sychzs.cn\Framework\v2.0.50727下的InstallUtil.exe复制到要安装的目录下,并放在程序的bin\Debug目录下。

3。 cd到Debug目录,执行命令

InstallUtil.exe 服务器.exe

如上图所示,服务安装完成!

第2步:启动服务??net start Servive1(服务名称)?它可能与 .exe 名称相同,也可能不同。如果您不确定,请转到已安装的服务并找到您的服务。右键单击属性并查看服务名称。您也可以右键单击计算机并进入管理->服务来启用该服务。

步骤 3 停止服务?net stop ServiceName?

步骤4 卸载服务?InstallUtil.exe /u?路径/Server.exe

至于调试,Windows服务不能直接调试。只能先安装并启动服务,然后将服务附加到进程中进行调试。安装服务后,可以在win7服务管理中管理刚启动的服务。

参考网站 1、初次安装服务时出现异常:System.IO.FileNotFoundException: Failed to load file or ****** - 翻云覆雨 - 博客园? http://www.sychzs.cn/railgunman/p/4590347.html

2。 VS 2010一步步开发windows服务(windows服务) - 欢醉 - 博客园http://www.sychzs.cn/zhangs1986/p/3502026.html

目前微软官网似乎只有最新版本的Visual Studio 2019。一般新购买的电脑可能都带有当年最新版本的Visual Studio。如果没有的话,你也可以让他帮你安装。激活效果很好。毕竟如果你想购买正版软件的话,其实也是相当昂贵的。你已经在电脑上花了这么多钱了,可以省一点,破解最新版本会比较麻烦。一般需要在线激活。所以,凡是能流通的都是盗版。当然,这并不是说盗版不好,而是说如果能用正版的话,正版就更好了。

以下是如何下载并安装 Visual Studio 2010 ①。我们首先在百度上搜索关键字MSDN或者i告诉你msdn。选择第一个并将其打开。 ps:本网站并非微软官方网站,而是民间收集的微软官方网站。发布的主样本并不像网上已经破解的软件,可能存在安全问题。

②。直接在搜索框中搜索Visual Studio 2010即可。如果以后要找什么,也可以直接搜索Visual Studio 2010,包括专业版、高级白金版、Ultimate终极版、Test Professional测试专业版等版本。选择需要下载的版本,将其链接地址复制到某个矿场即可下载

下载完成后,如果是iso镜像文件,需要先解压,然后点击setup.exe进行安装

如果是exe可执行文件,双击运行即可

按照惯例,安装程序时最好清理一下内存,停止占用大量CPU的软件,以免出现卡顿,甚至死机、蓝屏的情况。该软件的安装本身会消耗计算机资源。的。

接受许可条款,然后执行下一步

⑤。选择要安装的功能。这里我选择自定义安装。一般不需要完全安装。主要看你需要什么功能。然后点击自定义选择您需要安装的功能。但如果你是初学者,如果你不知道要安装什么模块,还是建议选择完整安装。毕竟装多了也没什么问题,现代电脑硬盘就够用了。程序的安装路径不建议安装在系统盘上,这样很容易造成启动延迟。具体原因相信大家都知道。可以选择其他分区,但不要有中文目录文件夹。一般需求下,我们不需要VS2010的所有组件。只需要与C/C++相关的组件,所以这里只选择“Visual C++”,其他不用的组件全部取消勾选。

⑥。安装组件。这个过程需要很多时间,需要耐心等待

⑦。提示Visual Studio 2010安装成功。如果您安装失败,程序会自动提示错误类型,然后您可以根据错误类型百度相应的解决方案。不过一般我们安装不成功大多是因为卸载不彻底造成的。由

引起

所有组件安装完毕后,VS2010就安装成功了。只需单击“完成”按钮即可。

提示:如果弹出以下对话框,请点击“退出”按钮。 ⑧.打开“开始菜单”,发现多了一个名为“Microsoft Visual Studio 2010”的文件夹,证明安装成功。第一次启动时,会选择默认的软件开发环境设置

这取决于您需要开发什么软件。比如我这里选择了C++。可以看到此时我们已经成功启动了vs 2010,并进入了程序的主界面。 9. 单击“新建项目”创建新项目。制作自己的小程序! ⑩.选择第一个win32控制台应用程序,输入名称,然后选择存储位置。单击“下一步”或“完成”。编写你自己的第一个小程序! ?、快捷键ctrl+f5执行,或者选择debug选项开始执行编译代码。 ?、结果输出

附上Visual Studio各版本的下载以及对应的序列号

正版官网下载,附加链接:https://www.sychzs.cn/zh-hans/vs/older-downloads/

各种版本的序列号: 2005 年序列号:KGR3T-F2C26-RRGTT-D6DQT-QBBB3 2008 年序列号:B3B-B2CCM -V9DX9-VDY8T WPDW8-M962C-VJX9M-HQB4Q-JVTDM 2010 年序列号:YCFHQ-9DW CY- DKV88-T2TMH-G7BHP 2012 序列号:旗舰版有效注册密钥:YKCW6-BFPPF-BT8C9-7DCTH-QXGWC 专业版有效注册密钥:4D974-9QX42-9Y43G-YJ7JG-JDYBP 2013 序列号:BWG7X-J98B3-W34RT-33B3R -JVYW9

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

1.?创建安装项目

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

?

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

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

???这里选择一个之前已经完成的WPF应用项目

3。将WPF可执行文件(.exe)、类库(.dll文件)和所需的图片添加到安装项目中。右键“我的设置”>>“查看”>>“文件系统”,选择窗口显示文件系统界面,如下图

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

???在“Project”选项中选择“DataServiceHost”,按住“Ctrl”键,选择“Main Output”和“Content File”,然后单击“OK”。然后右键“应用程序文件夹”>>“添加”>>“文件夹”,命名为“Images”,将应用程序需要的图片放在“Images”中,右键“图像”>>“添加”>> “文件”,在弹出的对话框中添加需要的图片。

4。创建快捷方式。右键单击“应用程序文件夹”中的“Main Output from DataServiceHost (Activity)”,如下图。

??单击“使用 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应用程序快捷方式”>>“属性窗口”,属性窗口如下图所示。设置“图标”属性并选择“图像”中的“mywpf.ico”图标。

7。要实现启动,右键单击“MySetup”>>“View”>>“Registry”,将出现如下所示的主窗口。

??在“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 Class”并将其命名为“Installer”。在“Installer.cs”代码中重写以下方法:

///

/// 函数入口——主函数

///

public static void Main()

{

}

公共安装程序1()

{

InitializeComponent();

}

///

///重写安装后函数

/// 安装完成后自动启动已安装的程序

///

///

protected override void OnAfterInstall(IDictionary savingState)

{

base.OnAfterInstall(savedState);

}

///

///重写安装过程方法

///

///

///

公共覆盖无效安装(IDictionary stateSaver)

{

基础.安装(stateSaver);

}

protected override void OnBeforeInstall(IDictionary savingState)

{

base.OnBeforeInstall(savedState);

}

///

///重写卸载方法

///

///

public override void Uninstall(IDictionary savingState)

{

base.Uninstall(savedState);

}

///

///卸载完成后重写函数

///安装完成后自动删除注册表

///

///

protected override void OnAfterUninstall(IDictionary savingState)

{

base.OnAfterUninstall(savedState);

}

///

/// 覆盖回滚方法

///

///

公共覆盖 void Rollback(IDictionary savingState)

{

base.Rollback(savedState);

}

下面是 protected override void OnAfterInstall(IDictionary savingState){} 和 protected override void OnAfterUninstall(IDictionary savingState){} 的自定义操作(当然也可以自定义其他方法,实现其他功能)。

受保护覆盖​​ void OnAfterInstall(IDictionary savingState)

{

base.OnAfterInstall(savedState);

程序集 asm = Assembly.GetExecutingAssembly();

字符串路径 = asm.Location.Remove(asm.Location.LastIndexOf("\\")) + "\\";

尝试

{

System.Diagnostics.Process.Start(path + "\\DataServiceHost.exe");

}

抓住(我的例外)

{

抛出新的异常(my.Message);

}

}

受保护覆盖​​ void OnAfterUninstall(IDictionary savingState)

{

base.OnAfterUninstall(savedState);

RegistryKey hklm =Registry.LocalMachine;

RegistryKey run = hklm.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");

尝试

{

run.DeleteValue("DataServiceHost.exe");

run.Close();

hklm.Close();

}

抓住(我的例外)

{

抛出新的异常(my.Message);

}

}

定制操作完成后,请务必生成应用程序,以便可以获得“.dll”文件。

生成成功后,即可将“.dll”程序集添加到安装项目中。右键单击“我的设置”>>“查看”>>“自定义操作”,主窗口如下图所示。

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

在“应用程序文件夹”中添加程序集,在前面的“InstallService应用程序”中的debug文件夹中找到“.dll”文件,然后添加。这样就实现了安装后自动运行、卸载后删除注册表的功能。 9.?现在就可以点击生成

右键“MySetup”>>“Generate”,大功告成! ! !在安装工程的Debug文件夹中找到“Setup.msi”,双击安装...

10 部署项目中需要设置Context.Parameters["targetdir"]来获取安装路径?其次,在部署项目的自定义操作中,将安装、提交、回滚、卸载添加到上述项目的master中。 Output 将主输出属性 CustomActionData 值设置为 /targetdir="[TARGETDIR]\" 以便 Context.Parameters["targetdir"] 能够获取安装路径。

?

相关文章