visual-studio-2010 - MSbuild 是否需要在构建服务器上安装 Visual

我们可以在没有 Visual Studio 2012 的情况下使用 MSBuild 吗?

目前,我们有一个构建服务器,我们正在其中编译和创建我们的一个项目的部署副本,它安装了 Visual Studio 专业版。我们现在正在设置一个新的构建服务器。我们真的需要在新的构建服务器上安装 Visual Studio 2012 吗?

如果是,那么如何?我用谷歌搜索了它,但我找不到答案。

最佳答案

我们花了很多时间试图让我们的构建服务器在没有 Visual Studio 的情况下工作。 我们不使用 TFS 进行构建,因此我不确定上述许可豁免是否适用于我们。还没有安装 Visual Studio 可以帮助您真正了解您的软件是如何构建的并获得正确的引用。

我们已经看到了许多解决方案示例,这些解决方案的项目包含对同一软件的引用,其中一些在解决方案附带的 nuget 包中,而另一些则指向“程序文件”路径中的位置,这些位置在机器上不存在没有安装 Visual Studio。一旦你尝试在没有安装 VS 的情况下构建软件,你就可以真正看到你的应用程序是多么“独立”。

在我开始列出您通常需要安装的东西之前,让我先指出,MS Build 现在不再被视为 .NET 框架的一部分,而是随 Visual Studio 一起提供,但也可以单独安装。有关更多信息,请参阅此博客文章:http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of-visual-studio.aspx

大多数版本需要安装以下软件,可能还有其他软件,例如,如果您正在创建可移植类库。

  1. Microsoft Build Tools 2013
  2. Web Deploy 3.5 (用于包装应用)
  3. Microsoft .NET Framework 4.5.1 Developer Pack
  4. Microsoft .NET Framework 4.5.2 Developer Pack
  5. Windows Software Development Kit (SDK) for Windows 8 (您可以使用 SDK 构建面向以下操作系统的应用程序:Windows 8、Windows 7、Windows Vista、Windows Server 2012、Windows Server 2008 R2、Windows Server 2008)

需要复制以下目录:

  1. 引用程序集(需要从运行 Visual Studio 的计算机复制到目录 C:\Program Files (x86)\Reference Assemblies)
  2. 公共(public)程序集(需要从运行 Visual Studio 的机器复制到目录 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PublicAssemblies

我们也使用 Wix,因此我们安装以下内容:

  1. WIX Toolset 3.8

我有一个类似的测试集,但这不是问题的一部分,所以我将不再讨论!

希望这对某人有所帮助。

更新:2017 年 3 月 3 日

Microsoft 最近回应了长期存在的用户语音请求“Support .NET Builds without requiring Visual Studio on the server”,要求删除在构建服务器上安装 Visual Studio 的要求。

来自 download page 上的描述“这些构建工具允许您构建本地和托管的基于 MSBuild 的应用程序,而无需 Visual Studio IDE。”尚未测试,但在 RTM 之后,我会查看此内容并在此处提供进一步的更新。

有一个blog post promise 这些构建工具安装所有先决条件,并可用于构建基于 MS Build 的应用程序。

关于visual-studio-2010 - MSbuild 是否需要在构建服务器上安装 Visual Studio?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24483589/

相关文章:

python - 有没有办法将 python 应用程序编译成静态二进制文件?

visual-studio - Visual Studio 在构建期间不断挂起

c++ - 从父 CMakeLists.txt 覆盖 CMake 中的默认选项(...)值

android - 使用 gradle 签署产品 flavor

build - CMakeLists.txt 中未使用 CMAKE_BUILD_TYPE

javascript - 我可以使用 webpack 分别生成 CSS 和 JS 吗?

android - 如何将构建时间戳写入apk

c# - 自动在 Visual Studio c# 项目中嵌入 mercurial 修订信息

ios - Swift 框架不适用于命名为 'Debug' 或 'Release' : No suc

Ant 到 Maven - 多个构建目标