当前位置: 首页 > 知识库问答 >
问题:

如何从命令行运行罗斯林而不是csc.exe?

邴修远
2023-03-14

安装VS 2015后,从命令行运行csc.exe会导致此消息显示到控制台:

此编译器是作为Microsoft(R).NET Framework的一部分提供的,但仅支持C#5之前的语言版本,该版本已不再是最新版本。有关支持C#编程语言更新版本的编译器,请参见http://go.microsoft.com/fwlink/?LinkID=533240

该链接重定向到Roslyn在GitHub的存储库。< br >那么,这是从命令行运行“支持新版本的编译器”(Roslyn)的一种方法吗?

共有3个答案

葛季萌
2023-03-14

我怀疑Roslyn编译器的位置会根据您正在运行的Visual Studio而变化很多。

我通过这样的搜索找到了我的:

cd"\程序文件(x86)"

目录/s csc*.*|查找罗斯林

我的特定 csc.exe 位于:

< code > C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Community \ MSBuild \ Current \ Bin \ Roslyn \ CSC . exe

陆子默
2023-03-14

Roslyn来自命令行('cmd'),Windows 10场景示例:
(注意:不需要安装Visual Studio,只需要安装.NET核心)

>

  • 打开“cmd”并创建文件夹“dotnet csharp tools”:

    D:

    导航到文件夹“dotnet-csharp-tools”:

    D:

    在“dotnet-csharp-tools”文件夹中,从以下网址下载“nuget.exe”的最新版本:

    https://www.nuget.org/downloads

    检查最新版本的“Microsoft.CodeDom.Providers.DotNetCompilerPlatform”的名称,来自:

    https://www.nuget.org/packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/

    例如:“Microsoft.CodeDom.Providers。DotNetCompilerPlatform-版本3.6.0'

    从“cmd”(打开文件夹“dotnet-csharp-tools”),运行命令:

    D:\dotnet-csharp-tools

    从“cmd”导航到“D:\dotnet csharp tools\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.3.6.0\tools\Roslyn472”(警告:如果是其他版本,文件夹名称“Roslyn47”可能不同)

    D:\dotnet-csharp-tools

    从“文件资源管理器”中找到“csc.exe”(在当前文件夹“Roslyn472”中)。使用名称“csc-roslyn.exe”复制“csc.exe”(名称可以是任何)。

    对于“Windows 10”,请打开:

    '编辑系统环境变量'-

    关闭并再次打开“cmd”(命令提示符)。需要重新启动此“cmd”,因为“系统环境变量”已被编辑。

    通过运行命令检查“csc-roslyn”是否被“cmd”识别:

    CSC-罗斯林

    创建文件夹 'D:\csharp-projects'(文件夹名称可以是任何名称)并在 'D:\csharp-projects' C# 源文件中创建,例如:

    车辆. cs

    class Vehicle
    {
        private string name = "unknown";
        private int producedYear = -1;
    
        public Vehicle(string name, int producedYear)
        {
            this.Name = name;
            this.ProducedYear = producedYear;
        }
    
        public string Name
        {
            get { return this.name; }
            set { this.name = value; }
        }
    
        public int ProducedYear
        {
            get { return this.producedYear; }
            set { this.producedYear = value; }
        }
    }
    

    汽车.cs

    class Car : Vehicle
    {
        private string maker = "unknown";
    
        public Car(string name, int age, string maker)
        : base(name, age)
        {
            this.Maker = maker;
        }
    
        public string Maker
        {
            get { return this.maker; }
            set { this.maker = value; }
        }
    
        public override string ToString()
        {
            return $"{this.Name}, {this.ProducedYear}, {this.Maker}";
        }
    }
    

    Autoservice.cs

    using System;
    
    class Autoservice
    {
        public static void Main()
        {
            
            Car car1 = new Car("Ford Taunus", 1971, "Ford");
            Car car2 = new Car("Opel Ascona", 1978, "Opel");
            Car car3 = new Car("Saab 900", 1984, "Saab");
    
            Console.WriteLine(car1);
            Console.WriteLine(car2);
            Console.WriteLine(car3);
        }
    }
    

    从“cmd”(命令提示符)打开“D:\csharp projects”并运行命令:

    CSC-Roslyn /target: exe /out:Autoservice.exeVehicle.csCar.csAutoservice.cs

    从'cmd'运行:

    Autoservice.exe

    结果应为:

    福特陶努斯,1971年,福特欧宝阿斯科纳,1978年,欧宝萨博900,1984年,萨博

  • 慕项明
    2023-03-14

    听起来你的道路基本上是不合适的。如果打开“VS2015 的开发人员命令提示符”,则在路径的早期应该有 $ProgramFiles(x86)$\MSBuild\14.0\bin - 并且 csc .exe 中有 Roslyn。

    我怀疑你运行的是< code>c:\Windows\Microsoft中的版本。NET\Framework\4.0.30319或类似的版本——基本上是遗留版本。

     类似资料:
    • 有人能发布详细的分步说明如何安装Saxon(10 HE)以及如何从MacOS(10.13.6)中的命令行运行转换吗? 我已经在我的计算机上安装了Java 我已经下载了SaxonHE10-6J。来自SourceForge的zip文件 根据这里的建议,我放置了saxon-he-10.6。jar位于myUserName/Library/Java/Extensions文件夹中 然后,我打开终端应用程序并根

    • 我知道以前有人问过这个问题,但是那里的信息都没有帮助我。 我的情况是:我无法运行编译后的Kotlin类。当我尝试像运行普通java类一样运行它时,我得到了以下结果: 这让我相信,考虑到这个输出,Kotlin运行时根本就不存在。所以我尝试了以下方法: 这让我想到,也许我需要将类文件添加到我声明的类路径中,所以: 我错过了什么?

    • 问题内容: 我很难找到答案。使用普通的Node.JS,您可以使用,CoffeeScript 和ES6具有的任何js文件。我如何使用Typescript进行操作? 我的项目有一个供Webpack / ts- loader使用的工具,用于为浏览器构建一个不错的小捆绑包。不过,在此之前,我需要从控制台运行一个构建步骤,该步骤将使用项目中使用的某些文件来生成模式,但是如果不进行编译,我似乎无法运行单个Ty

    • 我遵循以下指示https://code.visualstudio.com/docs/setup/mac但我没有成功。这就是我进去时发生的事情 我得到了以下信息: 我还查找了以下问题:如何在OSX上从命令行打开Visual Studio代码?,这没用。 我在VSCode中只有一个终端选项,zsh。

    • 问题内容: 当我尝试从PyCharm IDE运行程序时,一切正常,但是如果我输入Fedora: 在shell提示中,我从1个模块收到导入错误。 当从IDE启动时,PyCharm可以执行哪些操作以使解释器找到我的依赖项?如何获得脚本以找到其依赖项,以便可以使用singe命令启动它? 问题答案: 有一些可能的原因可能导致这种情况: 相同的python解释器?检查与 它是同一工作目录吗?检查与 中的差异

    • 问题内容: 到目前为止,我主要使用eclipse。现在,我正在尝试从终端运行Java,但程序包存在问题。 这是我的文件: 我使用编译此代码,然后运行,它给我: 当我删除一切正常。我想念什么? 给出: 问题答案: 您需要在一个目录级别上运行java命令,并以完全合格的软件包名称提供它,例如: 请参阅Java Launcher如何查找用户类 以了解其工作方式。