CLR笔记:2.生成,打包,部署,管理

2.1 .NET Framework部署目标

非.NET程序的问题:

1.DLL hell

2.安装复杂。目录分散,注册表,快捷方式

3.安全性。悄悄下载恶意代码

2.2 将类型集成到模块中——编译器工具csc

csc /out:Program.exe /t:exe /r:Mscorlib.dll Program.cs

由于C#会自动引用Mscorlib.dll,可以省略 /r:Mscorlib.dll

C#默认生成exe(CUI), 所以/t:exe可以省略;dll(程序集 /t:library)和GUI(可视化应用程序 /t:winexe)时不可以省略

C#默认编译成Program.exe,所以/out:Program.exe可以省略

最后精简为:

csc Program.cs

如果不希望默认引用Mscorlib.dll,使用/nostdlib开关

csc /nostdlib Program.cs

注:/t可以写为/target,/r可以写为/reference

/reference:指定引用的dll,可以使用完整路径;如果是不完整的,在以下目录依次查找:

1.工作目录(要编译的cs文件所在)

2.系统目录(csc.exe所在)

3./lib开关指定的目录

4.LIB系统变量指定的目录

应答文件(Response File)

包括一系列编译器命令行开关,执行csc时会将其打开,例如MyProject.rsp中有以下文本:

/out:Program.exe

/t:exe

/r:Mscorlib.dll

那么调用如下:csc @MyProject.rsp Program.cs

这个应答文件的位置,运行csc命令时,先在当前目录(Program.cs所在)查找;后在系统目录(csc.exe 所在)查找,如果都有就以前者为准

使用/noconfig开关指定忽略rsp文件

时间: 2024-12-30 07:26:21

CLR笔记:2.生成,打包,部署,管理的相关文章

CLR笔记系文章目录索引

CLR笔记:18.可空值类型 CLR笔记:17.自定义属性 CLR笔记:16.泛型 CLR笔记:15.委托 CLR笔记:14.接口 CLR笔记:13.数组 CLR笔记:12.枚举类型和位标志 CLR笔记:11.字符串 CLR笔记:10.事件 CLR笔记:9.Property CLR笔记:8.方法 CLR笔记:7.常量和字段 CLR笔记:6.类型和成员基础 CLR笔记:5.基元,引用和值类型 CLR笔记:4.类型基础 CLR笔记:3.共享程序集合强命名程序集 CLR笔记:2.生成,打包,部署,管理

Wix 安装部署(一)同MSBuild 自动生成打包文件

原文:Wix 安装部署(一)同MSBuild 自动生成打包文件       因为项目需要,最近在研究Wix打包部署,园子里也有一些关于wix的博客,方方面面,讲的点各不同.我自己也在测试过程中,写下过程,以供参考.最新版本WiX Toolset v3.7,如何安装的就不说了,可以参考 http://blog.csdn.net/rryqsh/article/details/8274832         打包关心的问题有 1).Net版本检查  2)桌面和菜单栏的快捷方式 3)更换图标画面,进度条

【Xamarin开发 Android 系列 13】 应用打包部署

原文:[Xamarin开发 Android 系列 13] 应用打包部署    开始倒叙咯................ 先更新大宝部署吧,这个章节比较的Easy,童鞋们不用费脑筋.点解?从界面上填写几个参数,其他都是傻瓜式的[下一步],童鞋们是否喜欢.卤煮 反正很是受用. 我们开发好的程序,需要打包成 .apk,成为安卓的安装包.然后就可以通过下载的形式安装到 用户终端手机/平板/TV/Watch....... 发布程序 主要的还是将应用发布到 谷歌的官方商店 Google Play..再然后

WinForm 打包部署时,资源文件和自己添加的一些文件夹,怎么加进去?

问题描述 这样的在打包部署winform项目时,按照网上的教程做,发现在安装时,自己添加的文件夹没有添加进去和资源文件(resouce)中的文件,不知道怎么弄,比较急,希望知道的大神能够提点一下! 解决方案 解决方案二:如果文件(不管是在工程里还是外面)导入进了.resx文件,默认为编译进当前工程的程序集中如果是一般的文件,又不想嵌入到.resx文件,则可以将文件的属性>复制到输出目录>始终复制文件的属性>生成操作>内容文件制作安装包的时候,在选择默认的主输出的基础上,你再手动将&

[CLR via C#]21. 自动内存管理(垃圾回收机制)

原文:[CLR via C#]21. 自动内存管理(垃圾回收机制) 目录 理解垃圾回收平台的基本工作原理 垃圾回收算法 垃圾回收与调试 使用终结操作来释放本地资源 对托管资源使用终结操作 是什么导致Finalize方法被调用 终结操作揭秘 Dispose模式:强制对象清理资源 使用实现了Dispose模式的类型 C#的using语句 手动监视和控制对象的生存期 对象复活 代 线程劫持 大对象 一.理解垃圾回收平台的基本工作原理 值类型(含所有枚举类型).集合类型.String.Attribute

【PMP】Head First PMP 学习笔记 第六章 时间管理

第六章 时间管理 按时完成 设定和满足最后期限,明确需要完成的工作,将如何完成这些工作,需要那些资源,花费多长时间,制订和控制进度. 定义活动 活动排序 估算活动资源 活动工期估算 制订进度 控制进度 时间管理就是将工作分解为活动,以便按顺序安排,并为各个活动做出估算. 定义活动过程 属于计划过程组. 输入 组织过程资产 企业环境要素 范围基线(WES词典,WBS,项目范围说明书) 工具和技术 分解 模板 专家判断 滚动计划,渐进明细,先做一部分计划,然后执行,接下来转向下一部分,敏捷开发的项目

当使用java-buildpack打包部署的app启动后,如何去访问app部署所在的Tomcat的web控制台?

问题描述 在CloudFoundry上部署一个javaweb应用时,默认会使用CloudFoundry自带的java-buildpack来打包部署该web应用.在使用java-buildpackstageapp时,会先启动Tomcat,然后Tomcat会去自动扫描其部署目录中的war包,部署并启动该web应用.因为应用实例是跑在wardencontainer里的,在外部只能通过warden所在的DEA虚机的ip:port进行对容器内应用的访问(通过DNAT将DEA的ip:port转换成warde

VS2012 程序打包部署图文详解_C#教程

程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具.不知道出于什么原因微软没有将打包工具集成在开发环境中,但是我知道总会有解决办法的.     经过翻阅资料发现,VS2012虽然没有集成打包工具,但它为我们提供了下载的端口,需要我们手动安装一个插件InstallShield.网上有很多第三方的打包工具,但为什么偏要使用微软提供的呢?因为最原始的也是最高级的,万变不离其宗. 一..NET程序部署机制     上篇博客稍微总结了下.NET程序的编译机制,下面了

devexpress 部署-devexpress 13.1.8 破解版 如何打包部署到终端客户机

问题描述 devexpress 13.1.8 破解版 如何打包部署到终端客户机 目前我安装了devexpress 13.1.8用它的wpf模板开发了程序在开发机上可以正常运行但是在另一台机器上就运行不起来呢? 求教高手如何部署. 先说声谢谢了.