[英]How to specify compiler options in c# file?
我有一个使用以下命令行编译的code.cs文件:
"%ProgramFiles(x86)%\MICROS~3\2017\ENTERP~1\MSBuild\15.0\Bin\Roslyn\csc.exe" ^
/target:library /out:fx1.dll fx1.cs ^
/reference:"C:\blah\blah\Microsoft.JScript.dll" ^
/reference:"C:\astor\loads\better\ease\zog.dll"
有没有一种实际的方法可以在fx1.cs文件中指定这些选项?
这主要是C#,但是Vb.Net等其他.Net语言又如何呢? 至少有一种语言可以在独立文件中指定编译器参数吗?
更新:我还看到有csc的答案文件,但它们缺少(或我看不到)足够的流控制,无法将其中一个嵌入cs文件中。
作为该问题的基准答案,我想出的解决方案是将C#文件转换为“ polyglot” *.cs.bat
文件,该文件在C#源代码之上运行完整的编译命令。
/*? 2>NUL & @echo off
echo.
echo COMPILING...
"%ProgramFiles(x86)%\MICROS~3\2017\ENTERP~1\MSBuild\15.0\Bin\Roslyn\csc.exe" ^
/target:library /out:fx1.dll fx1.cs.bat ^
/reference:"C:\blah\blah\Microsoft.JScript.dll" ^
/reference:"C:\astor\loads\better\ease\zog.dll"
PAUSE
GOTO:EOF REM */
// C# program...
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows.Forms;
// blah...
要进行编译,我可以只运行fx1.cs
或fx1.cs.bat
。 这实际上是可行的。
这可能很有用,但缺点至少在于:
突出显示*.cs
文件的各种编辑器中的文本突出显示都丢失了。如果只有一种(简便)的方式可以批量运行* .cs文件( type file | cmd
似乎忽略PAUSE
, EXIT /B
, EXIT
, GOTO:EOF
)
编译器路径是硬编码的(但我认为可以通过更多批处理来确定它)
它试图运行/*.exe
,所以第一行总是给我一个错误,因为我发现没有办法避免它被运行,所以我只能放一个?
在那里(因此它永远都不应该是有效路径),并使用错误重定向将其隐藏。
虽然在IDE中进行编辑是不切实际的,但我认为这可能是分发简单实用程序的简便格式。
我不太擅长此事...因此,如果有人有更好的主意(针对多语言路线),请通过评论或编辑来改善此答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.