首页 > 编程语言 >C#环境搭建,以及C#编译器的使用

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

时间:2023-03-04 12:45:26浏览次数:55  
标签:target C# csc dll 编译器 cs 搭建

原文:https://tool.4xseo.com/a/25168.html

搭建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# 编译器错误

请直接查询官网:链接

标签:target,C#,csc,dll,编译器,cs,搭建
From: https://www.cnblogs.com/bruce1992/p/17178082.html

相关文章

  • C#中的bin和obj文件夹有什么用?
    原文网址:https://zhuanlan.zhihu.com/p/435379436Bin目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默......
  • CSS & JS Effect – Blue Tick Avatar
    效果 难点难题只有一个,那就是如何把bluetickimage定位当avatar的右下角. HTML<divclass="avatar-wrapper"><imgclass="avatar"src="../images/ava......
  • [From 2.4]C#编译器和程序集链接器(以及一些它们的命令开关)
    原文:https://blog.csdn.net/weixin_30481087/article/details/96836436C#编译器:(用csc命令来使用C#编译器)程序集链接器(AssemblyLinker):(用al命令来使用C#编译器)除了使用......
  • Spring Boot @Scheduled 是同步还是异步,单线程还是多线程?
    @schedule刚开始用的时候回遇到一些坑,主要就是他的同步、异步、多线程的配置问题,这篇文章介绍了@schedule的使用方法,读者遇到问题时可以参考下。1.问题@schedule注解默......
  • 第2章 C语言提高专题篇
    指针入门到精通(一)指针是什么​ 如果在程序中定义了一个变量,在对程序进行编译时,系统就会给该变量分配内存单元,编译系统根据程序中定义的变量类型,分配一定长度的空间​ ......
  • acwing 297 赤壁之战
    给定一个长度为n的序列,求它有多少个长度为m的严格递增子序列。  f[i][j]+=f[i-1][k](a[k]<a[i],k<i)  优化:维护前缀和,根据a[k]<a[i] ,以a[]为下......
  • leetcode-1154-easy
    DayoftheYearGivenastringdaterepresentingaGregoriancalendardateformattedasYYYY-MM-DD,returnthedaynumberoftheyear.Example1:Input:date......
  • leetcode-1185-easy
    DayoftheWeekGivenadate,returnthecorrespondingdayoftheweekforthatdate.Theinputisgivenasthreeintegersrepresentingtheday,monthandyea......
  • 汇川AM401(Scanner) 和Easy521 (Adapter)的EIP通信
    1,导出Easy系列的EDS文件,配置Easy521的收发字节大小  2,导入Easy系列的EDS文件,配置AM401的收发字节大小    3,AM401作为Scanner的EIP通讯诊断代码......
  • leetcode-1528-easy
    ShuffleStringYouaregivenastringsandanintegerarrayindicesofthesamelength.Thestringswillbeshuffledsuchthatthecharacterattheithposi......