如何在未安装Visual Studio的情况下编译.NET项目?


36

我想编译一个.NET / C#项目,但是我不想安装Visual Studio来做到这一点。

我需要什么工具,如何编译项目?


Visual Studio Express不能为您工作吗?
svick

1
@svick:如果我需要它来编译项目,那么我会使用它。但是在这种情况下,这不是必需的,因此我不必在要部署项目的每台机器上都安装它。我可以简单地从VCS中提取一个副本,对其进行编译并运行。安装VS Express会使整个过程复杂化。
Der Hochstapler 2013年

在这种情况下,更简单的解决方案可能是部署已编译的程序集。这样,您不必在每台机器上进行任何编译。
svick

@svick:非常感谢您的见解,但是部署二进制文件也让我很容易想到。如果我认为在这种情况下它是一种有益的选择,我会做到的。话虽如此,这个问题和答案只是为了描述一个过程而发布的。确定此过程是否适合用户的情况是他们的决定。
Der Hochstapler 2013年

Answers:


37
  1. 下载并安装最新的.NET Framework。
    例如,可以将安装程序用于.NET Framework 4.5安装程序

  2. 打开命令提示符,然后转到.NET Framework的安装目录。
    例如:

    cd \Windows\Microsoft.NET\Framework\v4*
    
  3. 使用MSBuild.exe编译您的解决方案。
    例如:

    msbuild "C:\Users\Oliver\Documents\My Project\My Project.sln" /t:Rebuild /p:Configuration=Release /p:Platform="Any CPU"

如果项目使用NuGet软件包,则可以按照以下步骤检索它们:

  1. 下载NuGet.exe命令行增强程序,例如,将其放在解决方案目录中。

  2. 打开命令提示符,然后转到解决方案目录。
    例如:

    cd "C:\Users\Oliver\Documents\My Project"
    
  3. 调用NuGet.exe以更新此解决方案所需的软件包:

    NuGet.exe install "My Project/packages.config" -o packages/
    

真好!任何MSBuild文档链接?另外,这是针对一个已经存在的VS项目,对吗?如何在.CS或其他源文件中编译代码?
卡兰2013年

2
@Karan-是否有人愿意根据此文章做出答案msdn.microsoft.com/en-us/library/vstudio/78f4aasd.aspx
Ramhound13年

@Ramhound:我想一个知识渊博的人也可以将所有这些整合到一个FAQ类型的答案中。还可以解决一些后续问题。csc.exe是否也与最终用户.NET框架捆绑安装?如果仅安装客户端配置文件,是否包括在内?
卡兰2013年

1
@Karan:我已经添加了指向MSBuild.exe命令行参数文档的链接。是的,这是针对已经在本地计算机上的项目(可以从GitHub下载)。正如Ramhound提到的那样,csc.exe它将是编译单个文件的首选工具。csc.exe与.NET Framework也捆绑在一起。它是核心的C#编译器,MSBuild可能只是调用它。不确定客户端配置文件,但我认为它们包含在其中。
Der Hochstapler 2013年

1
csc.exe需要包含的原因之一是因为客户端配置文件包含XmlSerializer该类。此类csc.exe在运行时生成序列化程序集(使用)。
重载了

3

如果要避免安装Visual Studio,则可能需要尝试Mono,这是一个跨平台的开源.NET运行时和开发框架。Mono基于已发布的C#ECMA标准,并且与预编译的C#应用​​程序直接兼容。

Mono还包括一个名为XBuild工具,可以完全替代MSBuild。有关将项目从MSBuild移植到XBuild的信息,请参见Mono项目的这篇文章。来自Wiki的XBuild的单行描述:

xbuild是Mono的msbuild实现,它允许具有msbuild文件的项目在Linux上本地编译。

请注意,除了Linux外,还支持Windows和Mac OSX。


1
有什么理由要mono在Windows上使用?
里沙夫18'Mar

2
@Rishav政治考虑?也许对于需要使用Windows但又希望尽可能少使用其他Microsoft技术的用户而言。不过,只是推测。
杰米
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.