《CLR via C#》Part1之Chapter2 生成、打包、部署及管理应用程序及类型
由于在面试外企的时候,每次都被最后的口语交流所挡,终于下定决心恶补English,每天晚上有2-2.5h在学习它,所以只给自己暂定了每天晚上学1h的CLR这本书,估计东西更新会稍有点慢,但是希望能坚持每天晚上都有最少1h吧,这样,我觉得6个月左右也足够我搞清楚CLR via C#这本书了,至于精通,一点点来吧。
内容详情:
- .Net Framework 部署目标
- 将类型生成到模块中
- 元数据讲述
- 将模块合并成程序集
- 程序集版本资源信息
- 语言文化
- 简单应用程序部署(私有部署的程序集)
- 简单管理控制(配置)
No1. .Net Framework 部署目标
MS WINDOWS的不稳定性和复杂,造成的口碑不佳,.Net Framework 正在尝试彻底解决DLL Hell(安装一个新应用程序时,它可能莫名奇妙的破坏了另一个已经安装好的应用程序)
No2. 将类型生成到模块中
MSCoreLib.dll是一个比较特殊的DLL,它包含了所有的核心类型:Byte、Char、String、Int32等等。
C#编译器生成的exe文件:首先它是一个标准的PE(可移植执行体,Portable Executable)。
1 csc.exe /out:program.exe /t:exe /r:MSCorLib.dll program.cs
Windows支持两种类型的应用程序:控制台用户界面(Console user interface)和图形化用户界面(Graphical user interface),由于上面我们指定了/t:exe开关,所以C#编译器生成的是一个CUI应用程序,如果指定/t:winexe开关,则可让C#编译器生成一个GUI应用程序。
响应文件:(它是一个文本,里面包含了一组编译器命令行开关)执行csc.exe时,编译器会打开响应文件,并使用开关。
为了指示编译器使用一个响应文件,在命令行中,请在一个@之前指定响应文件的名称。例如:假定一个名为MyProject.rsp的响应文件包含以下文本:
1 /out:MyProject.exe 2 /target:winexe
为了让CSC.EXE响应这些设置,调用:
csc.exe @MyProject.rsp CodeFile1.cs CodeFile2.cs
这就告诉了编译器输出文件的名称和要创建的是哪种类型的应用,我们就不必每次都手动指定命令行参数。C#编译器允许同时指定多个响应文件。
[奔跑的人生] | [segmentfault] | [spring4all] | [csdn] | [掘金] | [OSChina] | [简书] | [知乎] | [51CTO]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?