C# 积木模块 ABC(二)在C#中部署应用程序

程序

在C#中部署应用程序

在Visual Studio.NET中部署工程非常简单。大部分程序都可以通过一些方便的向导自动完成,而不需要费什么力气。但是要记住,根据请看,可能还需要在机器上安装Windows组件的更新Beta 1版。当然还需要Microsoft .NET框架。还要注意一点:Microsoft说当前的部署到了将来可能会无效。

一旦在Visual Studio中完成了应用程序的编写,就可以按照下述步骤开始部署:

首先,从文件菜单中选择增加新的工程文件:

然后,选择设置和部署工程,这时Visual Studio会提供一个部署工程的选项列表,根据是否要部署到Web上,再决定是采取压缩的.cab文件形式,还是采取Windows Setup程序的形式:

下表是不同类型的工程文件设置以及它们的描述和用途:

工程设置类型 描述 用途

CAB工程: 一个Microsoft压缩Cabinet文件,可以用cabarc.exe打开。 用于部署可从网上下载的应用程序。

部署向导:为web创建部署文件,或者为使用.msi设置文件的windows安装程序创建部署文件,并且将它们部署到远程机器或本地机器上。 用于同时为工程创建设置文件和部署文件。

合并模块:被不同应用程序共享的包组件。 部署一个组件库。
Web设置向导 为基于web的应用程序创建一个安装程序,程序将安装在一个web服务器的虚拟根目录中。 用于为web服务器创建安装程序。

设置向导:使用一个.msi设置文件为windows安装程序创建设置文件。 用于创建设置文件。看起来好象只创建了.msi文件,但所有东西都压缩在这个文件中。运行时将程序放在程序文件目录中。

我们选择使用设置向导来部署这个特定的应用程序。设置向导为创建设置工程文件提供了很好的step by step对话框:

同对话框中所指出的一样,向导创建了一个安装器,你可以用它来安装工程文件。下一屏询问希望创建哪种类型的安装器:

我们想要的是一个完全的老式Windows安装样式,因此选择“Create a setup for a rich client application”。下一屏提示要安装到哪个文件中:

如果只是想部署没有源代码或文档的应用程序,那么就选择“Primary output”(基本输出)。这样就为应用程序部署了必要的exe文件和dll文件。

下一屏提示想要包含在安装文件中而Microsoft没有包括的附加文件,如readme.txt、web pages等。在Hangman的情况下,我们增加了声音文件:

最后一屏是一个报告,告诉完成了什么以及创建的vdp(visual deployment project)在哪里:

点击“Finish”(结束)之后,就为部署创建了一个目录。现在需要建立工程文件以便部署它,因此从“创建”菜单中选择“创建方案”(build solution),这样就创建了安装应用程序所需要的MySetupProject.msi文件。

创建MySetupProject.msi后,双击它就会启动安装程序。对于大多数安装程序来说,这只是意味着将所有必要的文件全部复制到program files下的目录中。在这里的hangman工程文件中,这些文件指的是所有System.xxx.dll文件、Microsoft.xxx.dll文件(CLR 库)、nlp文件(通用语言资源)、运行时间类库mscorlib.DLL、mngdist.dll(可能是管理发送的)、xxx.wav(声音文件),当然还有可执行文件,在这里是Hangman.exe。

获取主机的IP地址

可以用.Net的DNS类来获取一个主机名或一个给定主机的IP地址。要想在程序中使用DNS类,就需要包含System.Net:

Include System.Net Reference

比如说想获取http://www.mindcracker.com/的IP地址,以下代码就会完成这个任务:

// Call DNS.GetHostName to get IPHostEntry and get the IP address list.

IPHostEntry ipEntry = DNS.GetHostByName ("www.mindcracker.com");

IPAddress [] IpAddr = ipEntry.AddressList;

for (int i = 0; i < IpAddr.Length; i++)

{

Console.WriteLine ("IP Address {0}: {1} ", i, IpAddr.ToString ());

}

另外,使用无参数的GetHostName可以返回本地机器的主机名:

string strHostName = DNS.GetHostName ();

然后将这个主机名作为参数传递给GetHostByName,就可以获取本地机器的IP地址信息。

如何调用对话信息框?

MessageBox.Show("Inavlid File", "File Open Result", MessageBox.OKCancel | MessageBox.IconHand);

如何调用Windows API?

在C#中调用一个API同在VB中调用API一样。我们应该知道API的DLL名称,并且使用sysimport引入它。下面这个例子显示了如何调用MessageBox API:

using System;

class callAPICls {

[sysimport(dll="user32.dll")]

public static extern int MessageBoxA(int h, string m, string c, int type);

public static int Main()

{

return MessageBoxA(0, "Hello World!", "Caption", 0);

}

}

时间: 2024-10-02 05:06:33

C# 积木模块 ABC(二)在C#中部署应用程序的相关文章

怎样在Windows Azure中部署应用程序

这篇文章,我们主要围绕怎样在Windows Azure中部署应用程序这个来开展,想要在Azure中部署应用程序,说简单不简单,说难也不难,不过有两个文件是必需的:一个包文件,另一个则是配置文件.要创建包文件,可以在CloudService项目上"右击",然后点击"Publish".它会询问你是创建一个包文件还是把它发布到Azure中.如果选择第一个选项,它会创建包文件,并打开这个浏览器.而第二个配置文件则在CloudService1中,叫作ServiceConfig

C# 积木模块 ABC(一)(转自新一代技术网)

第一个C#程序:经典例程Hello World "Hello World"可以说是学习每一种编程语言的第一个例程了.我们可以在NotePad.Wordpad等任何编辑器中输入以下的C#代码,并保存为helloworld.cs,最后在命令行中执行csc helloworld.cs来运行文件: // using system using System; class Hello { static void Main() { // display output on console Conso

C# 积木模块 ABC(三)

如何装载等待光标? 光标是Drawing名称空间的一部分.要显示一个特定的光标,可以查阅文档得到所有可用的类型.要显示等待光标,请试试以下代码: componentsName.Cursor = System.Drawing.Cursors.WaitCursor; // back to arrow Cursor = Cursors.Arrow 如何获取机器上正在运行的进程? 使用System.Diagnostics.Process类可以启动和停止系统进程.GetProcesses函数返回了机器上正

php去除二维数组中重复值程序

例1  代码如下 复制代码 function my_array_unique($array2D){           foreach ($array2D as $v){          $v = implode(",",$v);                       $temp[] = $v;      }     $temp = array_unique($temp);          foreach ($temp as $k => $v){         $te

QRCode二维码生成方案及其在带LOGO型二维码中的应用

很多公司为商业宣传之需,常将企业LOGO加入二维码中,但如果LOGO遮挡区域足够地大,二维码就变得无法识别.那么,有没有一种办法将上述区域预先"抠空"出来(以便专门放置LOGO),而其他区域则专门来放置二维码的有效数据呢?--这就是本文想探讨的问题. 本文重点探讨的是二维码的高级应用及改进,其主要的思路是通过掩码等手段,提前对二维码生成进行改进. 由于二维码通常是黑白方块型的,人眼无法直接识别,但为了商业和宣传的需要,很多公司都乐意将自己的LOGO标识加入到二维码中,以更方便直接识别.

ABP架构学习系列二:ABP中配置的注册和初始化

一.手工搭建平台 1.创建项目 创建MVC5项目,手动引入Abp.Abp.Web.Abp.Web.Mvc.Abp.Web.Api 使用nuget添加Newtonsoft.Json.Castle.Core.Castle.Windsor Install-Package Newtonsoft.Json -Version 8.0.3 Install-Package Castle.Windsor -Version 3.3.0 2.创建WebModule类 在App_Start下创建一个ZmBlogWebM

[剑指Offer]5.二维数组中的查找

题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路 [算法系列之三十三]杨氏矩阵 代码 /*--------------------------------------- * 日期:2015-07-19 * 作者:SJF0115 * 题目: 5.二维数组中的查找 * 网址:http://www.nowcoder.com/books/coding-interviews/a

二维数组中的查找概述

这一题给跪,c++死活超时...后来main函数改成用c就好了... 算法: /* 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入的第一行为两个整数m和n(1<=m,n<=1000):代表将要输入的矩阵的行数和列数. 输入的第二行包括一个整数t(1<=t<=1000000):代表要查找的数字.

语音识别工具sphinx4源代码 如何在myeclipse中部署运行 在此基础上进行二次开发

问题描述 语音识别工具sphinx4源代码 如何在myeclipse中部署运行 在此基础上进行二次开发 如何能在源代码上进行二次开发,源代码如何部署在myeclipse中,我想做音频关键词检索方面的,有没有大神给点意见