不使用Visual Studio如何构建C#控制台项目

15

我需要创建一个脚本,从C#控制台项目生成可执行文件。

客户端系统没有安装Visual Studio,但已经安装了.NET框架。如何在客户端使用最少或者没有软件安装的情况下完成此操作?

C#编译器(csc.exe)是否随.NET框架一起提供?如果是,有没有环境变量来指定其位置?

6个回答

13
如果你已经有一个项目并且只想更改一些代码然后构建,可以查看位于Windows目录下的Microsoft.Net文件夹中的MSBuild。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild "C:\Projects\MyProject.csproj" /p:Configuration=Debug;DeployOnBuild=True;PackageAsSingleFile=False;outdir=C:\Projects\MyProjects\Publish\

(请勿编辑,保持单行)

C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild "C:\Projects\MyProject.csproj"
/p:Configuration=Debug;DeployOnBuild=True;PackageAsSingleFile=False;
outdir=C:\Projects\MyProjects\Publish\

如何确定安装了哪些版本和服务包级别的 Microsoft .NET Framework


问题在于我不知道安装了哪个版本的.NET框架,因此无法指定路径。我必须提供一个将被运行的脚本(bat?)。 - softwarematter
2
@andromeda:如果你不知道安装了哪个版本的.NET,你怎么能确定C#程序是针对正确的版本编写的呢? - Doc Brown
好的,如果已安装.NET Framework 4,它是否始终位于“C:\Windows\Microsoft.NET\Framework\v4.0.30319”? - softwarematter
谢谢。我有一个疑问,如何将outdir设置为我执行命令的当前文件夹? - softwarematter
我正在执行 >C:\Windows\Microsoft.NET\Framework\v4.0.30319\ msbuild MyProj.csproj /p:outdir=C:\Publish2\,需要将输出放置在与 .csproj 文件相同的位置。 - softwarematter
显示剩余3条评论

5

如果您是一位祖母,这将变得非常容易:

1

-- 创建一个包含以下内容的.bat文件:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\csc.exe csharp.cs
csharp.exe

2

-- 使用以下内容创建一个.cs文件:

class Program
{
    public static void Main()
        {
            System.Console.Clear();

            //code...

            System.Console.WriteLine("Congratulation! =D");

            //...code

            System.Console.ReadKey();
        }
}

并运行 .bat 文件 =)


2
我强烈推荐CS-Script。它是一个简单的安装程序,可以让你像运行批处理文件(.bat)一样运行CS-Files。

此外,它允许你通过上下文菜单轻松点击将CS编译为EXE文件(控制台或窗口),如果你想要Visual Studio作为编辑器,只需一次点击即可使用。

这真的很酷,我经常使用它,并用CS-Scripts替换了所有我的“复杂”批处理脚本。

1

请查看如何使用C#编译器以编程方式编译代码

编写一个C#控制台应用程序,它接受两个命令行参数:C#源文件名和输出.exe文件名。在此程序中,打开C#源文件,将其读取为字符串,并按照文章中描述的方式进行编译。

这个控制台程序可以在需要的脚本中使用。不需要独立的C#编译器,只需要.NET Framework。


1

另一种方法是安装 MonoDevelopSharpDevelop。你可以在一个免费的集成开发环境中使用 .NET 编译器。

除了上述之外,只需安装编译器并使用记事本即可。


0

我想你可以直接安装.NET Framework (CLR)。

引用自this post

C#编译器(csc.exe)不是Visual Studio的一部分,而是随Microsoft.NET框架提供的(在我的系统上,它位于%systemroot%\Microsoft.NET\Framework\v2.0.50727)。一旦我发现了编译器的位置,编译代码就变得简单明了。

请参考此指南,了解如何使用csc进行工作:csc.exe命令行构建

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接