Tag: csc

使用Visual Studio IDE将编译参数添加到csc命令

该解决方案包含两个项目: main.csproj和helper.csproj 。 我喜欢做的是使用dll哪个helper项目将被main.dll ,作为main.dll的嵌入式资源。 为此目的,为项目main添加自定义编译属性似乎是合理的: /resource: 。 问题是我找不到如何通过Project Property添加此编译参数。 PS也许有人可以建议其他解决方案,以避免在编译过程中进行更改。

为什么这个递归不会产生StackOverFlowException?

这段代码有什么问题: using System; namespace app1 { static class Program { static int x = 0; static void Main() { fn1(); } static void fn1() { Console.WriteLine(x++); fn1(); } } } 我使用这个命令编译这段代码: csc /warn:0 /out:app4noex.exe app4.cs 当我双击exe时,它似乎没有抛出exception(StackOverFlowException),并且永远保持运行。 使用visual studio命令提示符2010,但我也在系统上安装了vs 2012,这些都是最新的。

从C#程序运行C#编译器

我正在尝试构建一个将不同语言转换为C#代码的C#程序。 我有程序正常工作,转换代码并将其写入.cs文件。 我希望自动编译和运行此文件,但是我无法弄清楚如何使用C#执行此操作。 我可以通过运行我编写的批处理文件手动完成,并尝试使用System.Diagnostics.Process类从C#运行此批处理文件。 当它运行时,它在批处理代码本身中给出了一个错误,说没有找到任何命令(通常的“不是可执行文件,批处理文件等”)。 我无法弄清楚为什么它能正常运行,但不能从C#运行时。 这是批处理文件代码:C:\ Program_Files_(x86)\ Microsoft_Visual_Studio 10.0 \ VC \ bin \ amd64 \ vcvars64.bat csc%1.cs暂停 以及调用它的函数: System.Diagnostics.Process process = new System.Diagnostics.Process(); process.StartInfo.FileName = “compiler\\compile.bat”; process.StartInfo.Arguments = ” “+fileName; process.Start(); process.WaitForExit(); process.StartInfo.FileName = fileName + “.exe”; process.Start(); process.WaitForExit(); Console.WriteLine(“done”); 任何帮助将不胜感激。

Visual Studio消失了:尝试编译时“目录名无效”错误

出于一些非常奇怪的原因,我的Visual Studio 2008在尝试编译C#项目时,尝试将可执行文件的输出写入与可执行文件同名的目录,至少看起来这就是错误消息所暗示的内容。 在我的任何项目上运行Compile后,CSC.EXE报告以下编译器错误: 无法写入输出文件’D:\ Projects \ Examples \ StringBuilderVsString \ _obj \ Release \ StringBuilderVsString.exe’ – ‘目录名无效。 “ 当我查看obj\Release或obj\Debug所有中间资源,如StringBuilderVsString.pdb都正确地写在该目录中。 目录中没有空格。 从命令提示符运行csc.exe时也会发生此错误。 运行Process Monitor时,我只看到csc.exe访问的文件的SUCCESS,我没有看到任何查询或写入不存在的位置。 任何解决这个问题的想法都是受欢迎的。

在C#项目中包含FSharp.Core:解决类型冲突

我正在使用C#中的一些F#类型( Matrix等),所以我需要在我的C#项目中引用FSharp.Core程序集。 到现在为止还挺好。 但是,显然在mscorlib.dll(v4)中定义了一些在FSharp.Core(v2)中“重复”的类型,如System.Tuple和System.IObservable 。 我无法理解为什么这是在.Net 4.Matt Ellis明确表示他们将在他的MSDN文章中删除 : 遇到[重复]问题的一种语言是F#,它以前在FSharp.Core.dll中定义了自己的元组类型,但现在将使用Microsoft .NET Framework 4中添加的元组。 如果我能指定我想在C#程序中使用哪一个,我已经准备好了解这个特别不合时宜的重复。 例如,当我尝试使用System.Tuple类型时,我得到以下C#编译器错误: 错误2’c:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Profile \ Client \ mscorlib.dll’和’c:\ Program Files中存在类型’System.Tuple’ (x86)\ Reference Assemblies \ Microsoft \ FSharp \ 2.0 \ Runtime \ v2.0 \ FSharp.Core.dll’ 显然,解决这个问题的方法是在C#编译器命令行上切换该类型的别名 : csc.exe MyType.cs /reference:System.Tuple`2=mscorlib.dll /reference:FSharp.Core.dll […]

如何使用csc(C#编译器)或dmcs(单声道C#编译器)生成IL源代码?

gcc有一个-s选项来生成汇编源代码。 csc(MS C#编译器)或dmcs(单声道C#编译器)是否具有等价性? 我的意思是那些编译器提供了一个选项来生成可以读取而不是执行二进制文件的IL源代码吗?

为什么在将C#代码编译成IL时会创建.ctor()?

使用这个简单的C#代码,我运行csc hello.cs; ildasm /out=hello.txt hello.exe csc hello.cs; ildasm /out=hello.txt hello.exe 。 class Hello { public static void Main() { System.Console.WriteLine(“hi”); } } 这是来自ildasm的IL代码。 .class private auto ansi beforefieldinit Hello extends [mscorlib]System.Object { .method public hidebysig static void Main() cil managed { .entrypoint // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr “hi” IL_0006: […]

编译Release和Debug会生成不同的IL代码+不同的机器代码吗?

我听说在Release模式下编译生成的优化代码比在Debug模式下生成,这很好。 但这是IL的优化吗? 一旦CLR运行它,它在机器代码中吗? 是否与在Release和Debug中编译的PE不同的元数据结构? 谢谢

如何使用CodeDOM定位特定语言版本?

使用C#代码提供程序和ICodeCompiler.CompileAssemblyFromSource方法,我试图编译代码文件以生成可执行程序集。 我想编译的代码使用了可选参数和扩展方法等function,这些function仅在使用C#4语言时才可用。 话虽如此,我想编译的代码只需要(并且需要 )以.NET Framework 2.0版为目标。 使用前面的代码可以避免任何与语法有关的编译时错误,但是,生成的程序集将针对框架的4.0版本,这是不合需要的。 var compiler = new CSharpCodeProvider( new Dictionary { { “CompilerVersion”, “v4.0” } } ); 我怎样才能使代码提供程序针对语言版本4.0但生成一个只需要框架版本2.0的程序集?

是否可以使用.net core Roslyn编译器编译单个C#代码文件?

在旧的.net中,我们曾经能够运行csc编译器来编译单个cs文件或多个文件。 使用.net核心,我们有dotnet build ,坚持拥有一个合适的项目文件。 是否有一个独立的命令行编译器,它可以在没有项目的情况下编译源代码文件(并在同一命令行中列出引用的依赖项)? 在Linux上,当我安装了旧的csc和新的.net核心时,我得到了这些时间: [root@li1742-80 test]# time dotnet build Microsoft (R) Build Engine version 15.3.409.57025 for .NET Core Copyright (C) Microsoft Corporation. All rights reserved. test -> /root/test/bin/Debug/netcoreapp2.0/test.dll Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:03.94 real 0m7.027s user 0m5.714s sys 0m0.838s [root@li1742-80 test]# time csc Program.cs Microsoft (R) Visual C# Compiler […]