我有一个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#,但其他.Net语言如Vb.Net和其他语言呢?是否至少有一种语言可以在自包含文件中指定编译器参数?
更新:我也看到有csc的答案文件,但是他们缺少(或者我看不到)足够的流量控制来将其嵌入到cs文件中。
我提出的解决方案是这个问题的基本答案是将C#文件转换为“多语言”*.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中编辑是不切实际的,但我认为这可能是分发简单实用程序的简单格式。
我不是很擅长...所以如果有人有更好的想法(对于多语言路线),请通过评论或编辑来改进这个答案。