C# 使用CSC在单个目录中分别编译多个文件

C# 使用CSC在单个目录中分别编译多个文件,c#,batch-file,cmd,csc,C#,Batch File,Cmd,Csc,我在一个目录中有多个C#源文件(大约50个)。我想做的是分别编译它们,也就是说,它们中的每一个都应该生成自己的可执行文件。(有些文件有一个或两个目录深。) 目前我正在做的是 csc *.cs /recurse:*.cs 这里的问题是CSC试图将所有文件编译在一起,并找到方法Main的多个实例。我知道这是正确的行为,但这不是我想要的 写一个批处理脚本是我唯一的选择,还是我可以做一些单命令通配符魔术来分别编译所有文件?使用一个简单的bat循环,比如 for /R %f in (*.cs) do c

我在一个目录中有多个C#源文件(大约50个)。我想做的是分别编译它们,也就是说,它们中的每一个都应该生成自己的可执行文件。(有些文件有一个或两个目录深。)

目前我正在做的是

csc *.cs /recurse:*.cs
这里的问题是CSC试图将所有文件编译在一起,并找到方法
Main
的多个实例。我知道这是正确的行为,但这不是我想要的

写一个批处理脚本是我唯一的选择,还是我可以做一些单命令通配符魔术来分别编译所有文件?

使用一个简单的bat循环,比如

for /R %f in (*.cs) do csc %f 
应该使用一个简单的bat循环,比如

for /R %f in (*.cs) do csc %f 

应该做得很好,这似乎是可行的,虽然它是批处理代码,但它是一个单行程序。总有一天我会学习windows批处理脚本。干杯。CSC一次只能编译单个DLL/EXE。如果您想避免批处理脚本-考虑MSBug并创建相应的项目文件。您应该能够制作一个使用*.cs和在每个上执行csc的规则来生成EXE。for循环非常方便,您可以使用它进行批处理转换、一些重命名等。这看起来很好,尽管它是批处理代码,总有一天我会最终学会windows批处理脚本。干杯。CSC一次只能编译单个DLL/EXE。如果您想避免批处理脚本-考虑MSBug并创建相应的项目文件。您应该能够制作一个使用*.cs和在每个上执行csc的规则来生成EXE。for循环非常方便,您可以将其用于批处理转换、一些重命名等。