科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件C#积木模块ABC(2)

C#积木模块ABC(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在Visual Studio.NET中部署工程非常简单。大部分程序都可以通过一些方便的向导自动完成,而不需要费什么力气。

作者:青苹果工作室 来源:soft6 2008年5月15日

关键字: 模块 积木 C# Windows

  • 评论
  • 分享微博
  • 分享邮件

5.在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。


 

[下一页]


 

6.获取主机的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[i].ToString ());

}

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

string strHostName = DNS.GetHostName ();

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

7.如何调用对话信息框?

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

8.如何调用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);

}

}

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章