码迷,mamicode.com
首页 > 其他好文 > 详细

程序集--llorch的Visual Studio基础教程(终)

时间:2015-07-25 18:36:52      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

通用的示例说明:

  • 本系列博客只讨论工具的基础,不讨论任何语言。
    • 甚至不讨论快捷键:-)
    • 可以用鼠标就完成本教程
  • IDE默认指代的是Visual Studio 2013 Community Edition。 本系列文章的结尾,你可以熟练地使用它写程序。
  • 将Visual Studio启动后的默认布局状态称为主窗口,主窗口标题栏中显示的项目名称不必要。
  • 在日常口语和Windows资源管理器的基础上定义了几个描述菜单操作的符号:[]、{}、/、>>、=、(,)。
  • 检查一个设置项的表示方法为:
    • [窗口名称]/{菜单名称}/{子菜单名称}/{设置项项名称}=设置项的值
  • 例如默认的Debug配置:
    • [主窗口]/{解决方案配置管理器}=Debug
  • 检查多个设置项时,按照单个设置项的方式,逐一写出
  • 检查一个设置项有多个值的时候,用括号包括并用内部的逗号分隔,如:
    • [解决方案资源管理器]/{项目名称}/{引用}=(System,System.Core,System.Data,System.Xml)
  • 执行一个左键单击序列,就是将最后的检查项换成”/”,例如退出IDE:
    • [主窗口]/{文件}/{退出}/
  • 右键菜单的连接符号为>>,例如刷新Windows桌面:
    • [桌面]>>{刷新}/
  • 弹出窗口中的设置项的表示与上类似
  • MDI子窗口中设置项的表示与上类似,注意到在Visual Studio中,MDI子窗口的名称在它的左上角或者可能自动吸附到主窗口的四周
  • 标题栏和状态栏作为菜单的推广,适用于上述表示方法
  • 缺陷说明
    • 欢迎反馈,mailto:cqwd2010@qq.com
    • 作者的首选语言是C#
    • 作者是软狗
    • 作者的IDE没装中文语言包,所以有的名词翻译得不准确:-(
    • 由于还没有厘清相关的证书问题,版权保留
    • 系列文章没有提出或解决新的问题,目的只是科普

 

正文

Visual Studio带来的新的东西,就是对程序集的强大控制。

讨论之前的准备:VS2013开发人员命令提示 >> 外部工具

  1. [开始]/{所有程序}/{Visual Studio 2013}/{Visual Studio Tools}/,打开VS工具文件夹
  2. 右键点击快捷方式“VS2013 开发人员命令提示”,选择属性,复制“目标”对应的文本框里的内容
  3. [主窗口]/{工具}/{外部工具}/,呼出[外部工具窗口]
  4. [外部工具]/{添加}/
  5. [外部工具]/{菜单内容}=新工具 1/{标题}=VS2013命令提示
  6. [外部工具窗口]/{菜单内容}=VS2013命令提示/{命令}=%comspec%
  7. [外部工具窗口]/{菜单内容}=VS2013命令提示/{参数}=粘贴内容的参数部分(删除最前面的%comspec%)
  8. [外部工具窗口]/{菜单内容}=VS2013命令提示/{初始目录}=$(ProjectDir)
  9. [外部工具窗口]/{菜单内容}=VS2013命令提示/{应用}/
  10. 至此,就可以从IDE中调用[主窗口]/{工具}/{VS2013命令提示}/,每次打开的初始目录就是项目目录。其他的可选项还有二进制目录(视解决方案配置对应bin/Debug或bin/Release)、目标文件目录、解决方案目录等。

 

Visual Studio中的“项目”与程序集的关系

程序集在Windows操作系统中的具体形式,就是扩展名为DLL和EXE的.NET文件。一个.NET文件和传统的可执行文件(甚至传统的COM组件)不同。.NET文件有新的文件结构,最重要的是依赖于.Net Framework X.Y(2.0?3.5?4.0?)组件执行。

一个Visual Studio中的项目就对应于一个新的程序集。Visual Studio开发环境集成了自动化程度非常高的构建工具,同时屏蔽了大量的构建细节。作为Visual Studio用户可以简单地认为,一个Visual Studio中的项目就对应于它的构建目标,也就是输出的程序集。

一个项目“输出”的程序集可以引用许多的程序集,作为这个项目的“输入”。程序集的配置通常是每项目的,具体内容保存在“项目名.csproj  ”文件当中。

 

私有和共享程序集

程序集通常被一个应用程序单独使用,在默认情况下不共享。通过一个特殊的位置(GAC,全局程序集缓存)可以在操作系统全局共享程序集,使得其上的应用程序都可以使用。

私有程序集

直接编译Viusal Studio模板“输出”的程序集是私有的。

通常没有注册到GAC的程序集都被认为是私有的。私有程序集的搜索路径在项目文件夹内部。这些程序集通常会跟着项目的部署一起移动(Click Once)。这种策略是有用的,因为有些功能需要依赖于特定版本的私有程序集,而这个版本与GAC的不匹配。

明确私有程序集的搜索路径很有必要,在向项目引入非GAC的第三方库时,要确保全部程序集及其依赖项已经进入项目的搜索路径。

 

共享程序集

顾名思义,共享程序集是指那些不用复制到项目文件夹内,依然可以支持项目运行的程序集。共享程序集主要是依靠CLR来自动进行管理的。

共享程序集一般安装到全局程序集缓存文件夹(GAC)中,它的程序集名是全局唯一的。使用强名工具(sn.exe)和GAC管理工具(gacutil.exe)可以将程序集注册到全局程序集缓存。

 

查看程序集的内容

一般用两种图形化的方法查看程序集的内容。

对象浏览器

[主窗口]/{视图}/{对象浏览器}/

这实际上是一种效率较高的编程手册,尤其是引入了第三方库的时候。

ildasm

打开VS2013 命令提示,输入(不含<)

> ildasm

ildasm是一款图形化的实用工具,可以查看更多程序集元数据信息。

 

 

发布项目输出到GAC

需要四个步骤:起名、签名、重新生成和安装到gac。

1、创建强名

打开2013命令提示,输入(不含<)

> sn –k mykey.snk

2、给程序集签名

[解决方案资源管理器]/{项目N}>>{属性}/{签名}/{为程序集签名}=勾选

[解决方案资源管理器]/{项目N}>>{属性}/{签名}/{选择强名称密钥文件}=<浏览…>,呼出[创建强名称密钥]窗口

导航到上一步生成的mykey.snk。

3、设置到位以后,重新生成,就得到了共享程序集

4、将共享程序集安装到GAC(需要管理员权限的命令提示,可能需要从开始菜单里面,以管理员权限启动)

打开VS2013命令提示,输入(不含<)

> gacutil /i mywork.dll

 

向项目增加程序集

1、静态地添加对程序集的引用。使用

[解决方案资源管理器]/{项目N}/{引用}>>,

2、通过编程的方法向应用程序中动态地添加程序集。具体请查阅相关的MSDN内容。

 

卸载程序集

不能直接从应用程序中卸载程序集。要卸载程序集而又保持应用程序的运行,需要通过编写代码的方法,并使用应用程序域的概念。

 

NuGet程序包管理器

使用NuGet程序包管理器、对象浏览器和MSDN文档,可以帮助用户找到能够满足要求的程序集。

NuGet主要是汇集了社区的资源,让开发者不必重复造轮子。

 

总结:

程序集概念通常属于比较容易引起混乱的基础知识。本文尝试从实际操作的角度粗略地过一遍。

这是llorch的Visual Studio基本教程博客的最后一篇。系列博客的主要目的是整理Visual Studio使用的问题。因为Visual Studio本身使用范围确实很广,尤其是它的代码智能提示和对象浏览器,非常强大。而Visual Studio的操作使用,在课堂甚至是论坛里是不讲的。这就是博客的写作动机。

Visual Studio是一款难得优秀的编程IDE。虽然随着时间演变,它支持的编程语言生态变得封闭、落后。但是对于广大编程爱好者、学生和一些专业开发者来说,它仍然是赖以GTD的工具。

llorch的系列博客信息量比较大。基本上一篇博客对应半天的实际操作。最好的方式是边操作边阅读。在整个系列博客的尾声,llorch想传达的观念是,IDE是保证代码的工具。编程工作的中心,是作为产品输出的代码。使用工具的根本目的,就是要协助劳动者集中于此。

非常感谢热心网友给出的反馈。

由于作者的水平和经验有限,错误疏漏之处再所难免。恳请各位读者朋友指正。请电邮至cqwd2010&qq.com(&为@)。

版权声明:本文为博主原创文章,未经博主允许(mailto:cqwd2010@qq.com)不得转载。

程序集--llorch的Visual Studio基础教程(终)

标签:

原文地址:http://blog.csdn.net/u010289866/article/details/47057625

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!