C#环境搭建,以及C#编译器的使用

摘要:
常用命令示例cscFile.cs#编译生成库文件,以File.dll作为输出:csc-target:libraryFile.cs#编译File.cs并创建My.exe作为输出:csc-out:My.exeFile.cs#编译当前目录中的所有C#文件,对其进行优化并定义DEBUG符号:csc-define:DEBUG-optimize-out:File2.exe*.cs#编译生成File2.dll的调试版本。不显示徽标和警告:csc-target:library-out:File2.dll-warn:0-nologo-debug*.cs#将当前目录中的所有C#文件编译为Something.xyz:csc-target:library-out:Something.xyz*.csC#编译器选项选项目标-doc指定要将已处理的文档注释写入到的XML文件。-modulename:指定源模块的名称/lib指定通过-reference的方式引用的程序集的位置。-debug指示编译器发出调试信息。

搭建nuget包管理器

HomePage

windows环境下,可以下载安装包:Download

使用最新版本的C#编译器

C# 5.0之后,微软将csc开源并独立运行,其项目命名为——roslyn

Get the C# compiler before v5.0

C# 5.0 之前的版本,编译器csc集成在 .Net Framework 中,一般在以下目录中可以找到:

C:WindowsMicrosoft.NETFramework64v[版本号]csc.exe

Run the compiler of .Net Core 2.0+

一般可以通过 dotnet 命令直接调用C#编译器,因为编译器已经作为dll包含在了 .Net Core 的安装包中,路径在:

  • windows
    C:Program Filesdotnetsdkv[版本号]Roslynincorecsc.dll
  • linux
    /usr/share/dotnet/sdk/v[版本号]/Roslyn/bincore/csc.dll

Get the latest csc.exe on Windows-OS

nuget installMicrosoft.Net.Compilers # Install C# and VB compilers
nuget install Microsoft.CodeAnalysis # Install Language APIs and Services

C# compiler的使用

调用 C# 编译器时,不会创建任何对象 (.obj) 文件,而是直接创建输出文件。 因此,C# 编译器不需要链接器。

常用命令示例

csc File.cs
#编译生成库文件,以 File.dll 作为输出:
csc -target:library File.cs
#编译 File.cs 并创建 My.exe 作为输出:
csc -out:My.exe File.cs
#编译当前目录中的所有 C# 文件,对其进行优化并定义 DEBUG 符号:
csc -define:DEBUG -optimize -out:File2.exe *.cs
#编译生成 File2.dll 的调试版本。不显示徽标和警告:
csc -target:library -out:File2.dll -warn:0 -nologo -debug *.cs
#将当前目录中的所有 C# 文件编译为 Something.xyz (DLL):
csc -target:library -out:Something.xyz *.cs

C# 编译器选项

选项目标
-doc指定要将已处理的文档注释写入到的 XML 文件。
-out指定输出文件。
/pdb指定 .pdb 文件的文件名和位置。
-platform指定输出平台。
-target

使用下列五个选项之一指定输出文件的格式:

-target:appcontainerexe-target:exe-target:library
-target:module-target:winexe-target:winmdobj

-modulename:<string>指定源模块的名称
/lib指定通过-reference的方式引用的程序集的位置。
-debug指示编译器发出调试信息。
-define定义预处理器符号。
-langversion指定语言版本:默认、ISO-1、ISO-2、3、4、5、6、7、7.1、7.2、7.3 或最新版

测试程序:

//preprocessor_define.cs
//compile with: -define:DEBUG
//or uncomment the next line
//#define DEBUG
usingSystem;
public classTest
{
    public static voidMain()
    {
        #if (DEBUG)Console.WriteLine("xx defined");
        #elseConsole.WriteLine("xx not defined");
        #endif}
}

命令行编译:

csc  -define:DEBUG;TUESDAY  test.cs

C# 编译器错误

请直接查询官网:链接

免责声明:文章转载自《C#环境搭建,以及C#编译器的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇spring boot下使用logback或log4j生成符合Logstash标准的JSON格式highlight.js 代码高亮插件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IDEA中Maven项目的生命周期操作说明

目录 clean-清理操作 变化 结论 compile-编译操作 变化 结论 package-打包操作 变化 结论 install-安装操作 变化 结论 deploy-部署操作 IDEA中对Maven项目做了相当好的支持,专门有个Maven的模块用于进行项目的操作: 上图红框中的内容即开发者经常使用的操作,将英文简单翻译...

GCC编译器原理(一)------交叉编译器制作和GCC组件及命令

1.1 交叉编译器制作 默认安装的 GCC 编译系统所产生的代码适用于本机,即运行 GCC 的机器,但也可将 GCC 安装成能够生成其他的机器代码。安装一些必须的模块,就可产生多种目标机器代码,而且可通过命令行选择一种希望使用的代码。 1.1.1 目标机 从网站 http://gcc.gnu.org/install/specific.html 可以得到有可...

C#使用FFmpeg的总结

上篇文章提到FFmpeg解决项目中视频和语音问题,说道C#和FFmpeg不得不提的2个类库。 1、Xabe.FFmpeg 简单查看了下源码和demo,发现基于ffmpeg.exe的命令行参数进行处理。 2、FFmpeg.AutoGen 把C语言对外API和类型翻译成C#的API和对象。 看了一下这个源码生成,其中使用了CppSharp来生成g.cs的文件,...

AWVS安装与基础

--- 下一步 AWVS简介1.AWVS是一个自动化WEB应用程序安全测试工具,审计检查漏洞sql注入,xss夸站点脚本攻击和其他能被黑客利用的漏洞和网页应用2.为什么要用AWVS 黑客具备广泛攻击手段,sql注入,xss,文件包含,目录遍历,参数篡改,绕过等,用软件来解决功能简介1.整站扫描2.站点爬行3.发现目标4.子域名扫描5.盲SQL注射6.HTT...

解决关闭窗口,C#报错"在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke"

情况:在C#开发的过程中多线程委托是经常用的,今天在测试以前写的软件的时候发现有个问题,报 在创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke。 这样的错误。 解决方法:加上 if (this.IsHandleCreated) 1、首先分析问题,句柄:是对象的引用名,存于栈区(可以理解为对象的指针),对象是存于堆区,通过操控栈区...

Vue 获取自定义属性的值

在jquery中,如果要获取 data-***的值可以通过$('目标元素').data('属性名')来获取。 在Vue中如何获取该值呢? 1.换个思路,作为参数传递。 如下代码: <button @click="say('Hi')">say hi</button> methods: { say(message){...