当前位置:硬件测评 > vs2010打包引导文件_Winforms打包和部署

vs2010打包引导文件_Winforms打包和部署

  • 发布:2023-09-25 22:05

废话不多说,先看效果,看看是不是各位想要的的结果! 源码连接:工程源码链接(免积分) 各位可以下载下来 启动页面的图片,图片可以根据自己需求去做,当然这里看你的积累了,如果你会PS的话可能会更好一些! 界面启动结束就进入了我们的的对话框程序,当然,如果你是SDI或者MDI的话,就近这两个,我这里用的是DIALOG,还是接上期的窗口 废话不多说,看图片跟我新建一个类。 头文件: //后续我在类前加了C 即 WsdSplash-> CWsdSplash

#pragma once

// WsdSplash

class CWsdSplash : public CWnd

{

DECLARE_DYNAMIC(CWsdSplash)

public:

CWsdSplash();

virtual ~CWsdSplash();

protected:

DECLARE_MESSAGE_MAP()

//实现代码

public:

CBitmap m_bitmap;

afx_msg void OnTimer(UINT_PTR nIDEvent);

afx_msg void OnPaint();

void Create(UINT nBitmapID);

};

#include "stdafx.h"

#include "DialogToolsNotes.h"

#include "WsdSplash.h"

// WsdSplash

IMPLEMENT_DYNAMIC(CWsdSplash, CWnd)

CWsdSplash::CWsdSplash()

{

}

CWsdSplash::~CWsdSplash()

{

}

BEGIN_MESSAGE_MAP(CWsdSplash, CWnd)

ON_WM_TIMER()

ON_WM_PAINT()

END_MESSAGE_MAP()

// WsdSplash message handlers

void CWsdSplash::OnTimer(UINT_PTR nIDEvent)

{

// TODO: 添加实现代码

DestroyWindow();//销毁窗口

CWnd::OnTimer(nIDEvent);

}

void CWsdSplash::OnPaint()

{

CPaintDC dc(this); // device context for painting

// TODO: 下面添加重绘代码,上面是模板生成固定格式

BITMAP bitmap;

m_bitmap.GetBitmap(&bitmap);

CDC dcComp;

dcComp.CreateCompatibleDC(&dc);

www.sychzs.cnObject(&m_bitmap);

//Draw bitmap

dc.BitBlt(0,

0,

bitmap.bmWidth,

bitmap.bmHeight,

&dcComp,

0,

0,

SRCCOPY);

// Do not call CWnd::OnPaint() for painting messages

}

void CWsdSplash::Create(UINT nBitmapID)

{

m_bitmap.LoadBitmapW(nBitmapID);

BITMAP bitmap;

m_bitmap.GetBitmap(&bitmap);

CreateEx(0,

AfxRegisterWndClass(0,

AfxGetApp()->LoadStandardCursor(IDC_ARROW)),

NULL,

WS_POPUP|WS_VISIBLE,

0,

0,

bitmap.bmWidth,

bitmap.bmHeight,

NULL,

NULL);

}

类已经建好了,那么剩下的我们要在主函数中加入该头文件

#include "WsdSplash.h" //启动窗口头文件

//InitInstance()中加入下面这一段函数

BOOL CDialogToolsNotesApp::InitInstance()

{

CWsdSplash wndSplash;

wndSplash.Create(IDB_BEGINLOGO); //选择自己喜欢的位图

www.sychzs.cnWindow();

wndSplash.UpdateWindow();//send WM_PAINT

Sleep(5000);

wndSplash.DestroyWindow();//销毁初始画面窗口

}

?

我们经常会遇到这样的问题:自己开发好了一个Winform系统,如何使之可以平稳的运行在没有安装.NET Framework 的操作系统上?这就涉及到打包和部署的内容,通过打包和部署形成安装程序,实现WinForm应用软件正常的安装在客户的操作系统上。另一方面同时需要考虑通过打包和部署形成卸载程序,将该应用软件卸载掉,达到方便客户使用的目的。

在这重点介绍Winform系统打包和部署的概念,通过实例介绍如何进行打包和部署的方法。

1. 新建安装部署项目

打开Visual Studio,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定。

2. 配置安装系统文件

在点击图8-2的确定后,将进入到安装系统文件的配置界面中。

?

u步骤(1):

鼠标左键点击“应用程序文件夹”,在打开的右侧界面中单击鼠标右键,在弹出的快捷菜单中选择“添加”->“文件”。

?

u步骤(2):

在打开的文件选择界面中,添加某文件夹中具体的文件,这类文件主要包括两种:.EXE文件或者是.dll文件。一般而言,一个C# Winform应用程序在Visual Studio2005平台下开发的时候,会自动将这两种文件生成在你的Winform应用程序所在目录下的bin文件夹里面的Debug子文件夹下面,其中.EXE为可执行文件,而.dll文件的来源多是用户自定义编辑的类库文件,或者是第三方的动态链接库文件,如果你的项目之中存在上述两种情况,那么请你务必将这些文件一并作为打包文件放进来。我们以第二章应用软件为例进行打包,图8-5为最终找寻的.EXE文件或者是.dll文件所在之处。其实一个比较简单的办法就是,将你的Winform应用程序所在目录下的bin文件夹里面的Debug子文件夹下面的所有文件全部取来即可。这里有一点提醒读者的是:如果你的项目中有图片或者其他多媒体文件,请你也一并将之选中,放在文件里面。

选择后的文件将出现在“应用程序文件夹”之中。

??? 鼠标右键单击“应用程序文件夹”,选择属性窗口,在弹出的属性窗口中将“defaultlocation”属性路径中的"[manufacturer]"去掉,不然的话做好的安装程序默认安装目录会是“c:\programm file\你的用户名\安装解决方案称”。

?

u步骤(3):

在图8-6基础上,于右侧栏目单击鼠标右键,添加“文件夹”,并为该文件夹取名为img,如图8-7所示。该img文件夹存储系统的所有图片文件,为启动和卸载文件分别增加快捷图像做前期准备,类型必须为.ICO文件(图标文件)。

在点击左侧新建的img文件夹, 于右侧栏目单击鼠标右键,添加“文件”,从你的磁盘中选择两个.ICO文件(图标文件)放置其中即可。

u步骤(4):

本步骤对于卸载软件系统至关重要,如果不添加将无法形成卸载你已经安装的文件。请你再次于右侧栏目单击鼠标右键,添加“文件”,请你在c:\windows\system32文件夹下找寻一个叫msiexec.exe的文件,并将之添加到应用程序文件夹下面。该文件将负责执行卸载你安装的软件。。

u步骤(5):

本步骤将在应用程序文件中增加系统.Net FrameWork组件,如果不进行这一步,对于没有安装.Net FrameWork组件的操作系统,即便安装了您的应用软件,该系统也无法运行。

打开解决方案管理器,右击你的解决方案名称,选择属性:在打开的属性页中,选择“系统必备”。

在展开的系统必备内容中,将.Net FrameWork2.0组件包和Windows Installer2.0组件包一并选中。

u步骤(6):

截至步骤5,我们完成了对应用程序夹中全部文件的添加工作。本步骤将引导读者开始配置左侧导航条中的“用户的程序菜单”。该菜单将出现在操作系统“开始”栏目的“程序”里面。因此建议以文件夹形式出现,里面包含执行程序和卸载程序两个可执行文件的快捷方式文件。

鼠标左键点击“用户的程序菜单”,在右侧导航栏目中的空白处单击鼠标右键,添加文件夹,假设我们给这个文件夹取名“警匪争霸”。

在“警匪争霸”文件夹中单击鼠标右键,选择“创建新的快捷方式”。

在打开的创建新的快捷方式窗口中,选择“应用程序文件夹”中的可执行文件(.exe文件)。这两个文件分别是:WindowsApplication2.exe(项目可执行文件)和msiexec.exe(卸载软件项目可执行文件)

在“应用程序文件夹”中,名称不太适合安装包的命名。请你将这两个快捷方式分别更名为假设的“警匪争霸”和“卸载警匪争霸。

u步骤(7):

截至步骤6,我们完成了在开始栏目的程序中添加执行文件夹的任务。此次步骤我们将完成快捷方式文件的图标配置工作。

鼠标右键单击快捷文件“警匪争霸”,在弹出菜单中选择“属性窗口”,在属性窗口之中配置快捷文件“警匪争霸”的icon属性,选择浏览。

在弹出的“图标”对话框中,点击浏览,寻找应用程序文件夹下面的img文件夹,选择其中的一个ico图标。如图8-18所示。对于“警匪争霸卸载”的快捷方式图标的配置也是一样。

u步骤(8):

此次步骤我们将完成对卸载文件注册表的配置工作。按照图8-19,将“解决方案资源管理器”和“属性”窗口进行排列,在“解决方案资源管理器”中单击此次项目,你会看到在“属性”窗口中出现名为productcode属性,该属性为项目操作系统注册表文件的注册编号,拷贝该编号。

鼠标右键点击“卸载警匪争霸”快捷文件,弹出菜单选择属性窗口,将刚才拷贝的注册编号复制到Arguments属性之中,并进行如下修改:在“/x {ProductCode}”,以本次案例为准就是:/x {DC17056E-F331-449C-8409-4A74CE60F383},如图8-20所示。

u步骤(9):

截至步骤8,我们已经完成了“用户程序菜单”的快捷文件配置工作,本次步骤我们将配置桌面快捷文件。用鼠标左键点击“用户桌面”,在右侧栏目中创建快捷方式,添加可执行文件,配置可执行文件快捷方式的图标属性。具体步骤与步骤8基本一致。

u步骤(10):

最后,选择菜单“生成”,运行“生成解决方案”。

在目标输出路径下可以看见输出的安装包文件。

运行setup.exe文件,既可以安装你的软件到任何的计算机中。图8-23的桌面快捷方式和开始栏目中的程序部分的运行文件。当然,你执行“卸载警匪争霸”,既可以完成对软件的卸载工作。

?

项目中需要用到一个定时推送案件状态的需求,本人小菜一只,在同事建议下要写成一个windows服务程序。由于之前没有涉猎过这方面的知识,所以在查阅资料与同事的帮助之下,艰难的推进。首先怎么新建与调试windows service就不多说了,这里有一个例子,非常详细,打包发布前可以在本地调试http://www.sychzs.cn/html/windowsservicedemo.htm。

这里说下打包发布的问题,首先打包工具的下载地址http://www.sychzs.cn/html/advancedInstaller.html,这个是英文版本的,我也不知道哪里有中文的,有需要的可以自己找一下,然后是注册机http://www.sychzs.cn/download/lee576/9633938,如果不使用注册机的话貌似不能打包服务,谁知道管他呢,反正下载好直接点击运行就行了很简单的样子。然后全部安装完成之后打开运行,如果是要打包windows service程序的话,那么就选择第一个,然后点击下面的create project按钮。

然后就按照提示,输入就行了

再下一步是要选择打包生成的格式,我选择的是exe

.

然后是选择打包生成的路径

然后要选择你索要打包的程序的文件

再下一步是选择编译好的文件夹

选择后下一步,全选

然后后面的直接下一步下一步就好了,有些个性化设置,比如安装界面等,可以按需求自己设置

这个是安装时候的界面 ,有很多种样式可选

选择安装包的语言,默认英语,选择中文简体后,会另外生成一个中文安装包

在product details目录下面设置一些参数等

我之前出现的问题就是,service 这里边没有东西,后来才知道是要自己添加的,右键添加就行了

选择默认加载进来的这个程序

确定

运行就行了,build all?

然后找到之前设置的路径下,就有生成好的文件了?

双击运行,就会自动加到服务中去。

相关文章