下面先给出编译示例的代码;

add.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace TestClaclulate
{ class Program { static void Main(string[] args) { // 1,定义double变量 double numberOne; double numberTwo; // 2,从控制台获得两个数 try { numberOne = double.Parse(Console.ReadLine()); numberTwo = double.Parse(Console.ReadLine()); // 3,输出这两个数的加,减,乘,除 的结果 Console.WriteLine(numberOne + " + " + numberTwo + " = " + (numberOne + numberTwo)); Console.WriteLine(numberOne + " - " + numberTwo + " = " + (numberOne - numberTwo)); Console.WriteLine(numberOne + " * " + numberTwo + " = " + (numberOne * numberTwo)); Console.WriteLine(numberOne + " / " + numberTwo + " = " + (numberOne / numberTwo)); } catch (System.FormatException e) { Console.WriteLine(e.Message); } // Console.ReadKey(); } }
}

main.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using 读写ini文件;class Program{static void Main(string[] args){string Current;Current = Directory.GetCurrentDirectory();//获取当前根目录Console.WriteLine("Current directory {0}", Current);// 写入iniIni ini=new Ini(Current+"/config.ini");ini.Writue("Setting","key1","hello word!");ini.Writue("Setting","key2","hello ini!");ini.Writue("SettingImg", "Path", "IMG.Path");// 读取inistring stemp = ini.ReadValue("Setting","key2");Console.WriteLine(stemp); Console.ReadKey();}       }

inioper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;namespace 读写ini文件
{public class Ini{// 声明INI文件的写操作函数 WritePrivateProfileString()[System.Runtime.InteropServices.DllImport("kernel32")]private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);// 声明INI文件的读操作函数 GetPrivateProfileString()[System.Runtime.InteropServices.DllImport("kernel32")]private static extern int GetPrivateProfileString(string section, string key, string def, System.Text.StringBuilder retVal, int size, string filePath);private string sPath = null;public Ini(string path){this.sPath = path;}public void Writue(string section, string key, string value){// section=配置节,key=键名,value=键值,path=路径WritePrivateProfileString(section, key, value, sPath);}public string ReadValue(string section, string key){// 每次从ini中读取多少字节System.Text.StringBuilder temp = new System.Text.StringBuilder(255);// section=配置节,key=键名,temp=上面,path=路径GetPrivateProfileString(section, key, "", temp, 255, sPath);return temp.ToString();}}
}

首先设置csc所在目录到path环境变量;

编译第一个cs文件,执行情况如下;

编译为dll,第一次代码中少了一个大括号,第二次成功;编译后的dll见下图;

编译add.cs为my.exe;编译和执行情况如下;

通过使用优化和定义 DEBUG 符号,编译当前目录中所有的 C# 文件;

第一次代码中少了一个大括号;

第二次缺少命名空间引用;第三次main.cs缺少对inioper的命名空间引用;

第四次成功;

执行情况;

/define 选项的效果与在源文件中使用 #define 预处理器指令一样。符号一直保持定义到源文件中的 #undef 指令移除定义,或者编译器执行到文件尾。
参见
https://msdn.microsoft.com/zh-cn/library/0feaad6z(VS.80).aspx

一个示例的代码和执行情况如下;

// preprocessor_define.cs
// compile with: /define:xx
// or uncomment the next line
#define xx
using System;
public class Test
{public static void Main() {#if (xx) Console.WriteLine("xx defined");#elseConsole.WriteLine("xx not defined");#endif}
}

使用响应文件;编译命令存在响应文件中;#开头的行在rsp文件中是注释;

resp1.rsp

# 这是一个简单的响应文件,文件名称为resp1.rsp
# 使用方法: csc @resp1.rsp
/target:exe /out:respadd.exe add.cs

使用响应文件编译的情况如下图;第一次忘了打@符号;

执行情况,跟csc直接编译的一样;

编译为DLL时指定DLL载入首选基地址;编译情况如下图;

用PEInfo打开上述DLL,看红线处,优先装载地址是在编译命令中指定的;

编译时把bug信息输出的一个文件中;

打开debug开关,将会生成pdb文件;

编译时同时为应用程序生成一个xml文档;

增量编译,按网上资料打的命令,提示出错,下次再搞;增量编译是仅仅编译改变后的代码,同时生成.incr文件;

编译时指定一个图标;如下图,编译后的应用程序将具有一个图标;

相关链接:

http://wuyisky.cnblogs.com/archive/2007/07/03/804157.html

http://www.cnblogs.com/shuang121/archive/2012/12/24/2830874.html

dNet命令行编译命令CSC使用详细图解相关推荐

  1. java命令行编译命令_Java使用命令行编译运行程序

    一.摘要 使用javac命令来编译java文件生成.class文件 使用java命令+类名来运行编译好的class文件 二.编译不含包名的程序 假设HelloJava.java代码文件如下 Java ...

  2. 命令行编译工具NMAKE

    简介 大家已经习惯于微软提供的功能强大的IDE,已经很少考虑手动编连项目了,所谓技多不压身,有空的时候还是随我一块了解一下命令行编译. C/C++/VC++程序员或有Unix/Linux编程经验应该很 ...

  3. 命令行编译运行CSharp文件

    命令行编译运行CSharp文件 找到csc.exe所在的路径.如我本机上为"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727" 在环境变量 ...

  4. java打包dex_Android 命令行编译、打包生成apk文件

    一.搭建搭建环境 1. 安装JDK 和 Android SDK 2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1.6. ...

  5. python 基础命令-Python unittest第一篇:基础入门+命令行编译

    unittest单元测试框架最初受JUnit启发,与其他语言的主要单元测试框架具有相似的风格. 它支持测试自动化,支持开启或关闭某个测试,支持结合测试.另外它可以生成各个单元测试的报告.为了实现以上功 ...

  6. Java 命令行编译项目

    如果是用Exlipse, 第三方的包可以放在eclipse文件夹的jre包的lib文件夹中! (初学者的一些总结-高手们勿喷哈-) 原因: 以前一直用Eclispe编程环境运行Java.非常舒服,就像 ...

  7. Java script生成apk_Android 命令行编译、打包生成apk文件

    一.搭建搭建环境 1. 安装JDK 和 Android SDK 2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1.6. ...

  8. MSBuild 命令行编译Delphi

    为了构建项目,IDE现在使用MSBuild而不是以前的内部生成系统.IDE中的build.compile和make命令调用Microsoft的新生成引擎:MSBuild,它提供了全面的依赖性检查.MS ...

  9. VisualStudio 命令行编译 build 通过 rebuild 不通过

    在使用命令行编译项目,发现使用 build 可以编译通过,但是通过 rebuild 编译提示找不到项目,明明在对应的文件夹存在项目输出的 dll 文件,但是会提示找不到 在命令行编译的 build 和 ...

最新文章

  1. Linux中的信号处理原理
  2. CentOS Linux下VNC Server远程桌面配置详解
  3. C语言 获取数组的元素个数
  4. 科大星云诗社动态20210325
  5. 数字图像处理吴娱课后答案_数字图像处理课后题答案
  6. 前端学习(3258):js高级教程(2)
  7. Windows查找JDK的路径
  8. HT中特殊字符φ的显示问题
  9. 块元素、行内块和内联元素_如何删除内联块元素之间的空间?
  10. SqlServer-函数
  11. 万物皆可Graph | 当推荐系统遇上图神经网络(四)
  12. 跨国际日期分界线的解决方法
  13. mysql注释符号_MySQL基础知识(2021最新版教程)
  14. Outlook中的Notes的链接打不开,提示错误信息“File does not exit”
  15. 软件工程需求分析模板(简单)
  16. ISO18000-6B和ISO18000-6C(EPC C1G2)标准的区别
  17. sap系统webservice接口开发
  18. ENSP静态路由配置
  19. 从零到一搭建一个属于自己的博客系统(弍)
  20. PC端浏览器兼容测试总结

热门文章

  1. 设置超链接在新的窗口中打开,而不是在本窗口中打开
  2. 概率论与数理统计(三)
  3. 【 HDU1043-经典BFS+康拓展开 八数码】 (待更)
  4. 删除链表中重复的结点
  5. Python 基础语法(三)
  6. 金字塔式梯度方向直方图(PHOG)
  7. mySql中使用命令行建表基本操作
  8. MongoDB复制集与Raft协议异同点分析
  9. git 本地仓库同时推送到多个远程仓库
  10. apache 服务器概述--安装(一)