c# - 可以使用 MSBuild + .csproj 文件创建 msi 安装程序吗?

标签 c# .net visual-studio deployment msbuild

对于没有设置和部署项目模板的使用 Visual Studio Express 的任何人,是否可以使用 .csproj 文件轻松创建 msi 安装程序?我读过(现在找不到链接)MSBuild 可以使用 csproj 文件(它被 MSBuild 转换为 MSBuild 项目文件)- 所以InstallShield、WIX 或设置和部署项目需要什么?

我意识到这可能是一个简单的问题,但在网络上搜索只会找到为什么需要 MSBuild 的解释 - 这包含在框架本身中。

最佳答案

首先澄清几点:

  • .csproj 一个 MSBuild 项目文件,大多数 Visual Studio 项目文件(包括 WiX 项目)也是如此。 .sln 文件不是 MSBuild 项目文件,但 MSBuild 会将其转换为一个。
  • 从最新版本开始,MSBuild 不再是 .NET Framework 的一部分。它现在位于 MS Build Tools 中,这是一个单独的免费产品。
  • 即使使用 Visual Studio Express,您也可以充分利用 MSBuild。 Express 不允许非 Microsoft Visual Studio 扩展。 WiX 工具集确实提供了 MSBuild 目标/任务文件和 Visual Studio 扩展。因此,使用 Express,您没有 WiX 项目模板扩展器和编辑器。

Visual Studio 的替代品是 SharpDevelop。它提供自己的 WiX 项目模板。

您也可以按照文档中的说明从头开始手动创建 WiX 项目。

创建一个简单的 MSI 安装程序很容易,带有明确的文件列表。您还可以“收获”.csproj 输出和一些其他 Visual Studio 项目输出,以及目录等。

大多数编辑器,包括 Visual Studio Express,都可以帮助您将 WiX 项目和源文件编辑为 XML。您可能需要告诉它相关 XML 架构文件 (.xsd) 的位置以获得内容帮助。 WiX 的压缩二进制分发版在这种情况下使用起来可能最简单。

Windows Installer 非常复杂。 WiX 工具集允许完全访问该复杂性,同时尝试使其尽可能简单。使用 WiX 意味着至少要学习一些 Windows Installer。

最终,没有安装程序工具可以查看您的编程项目并为您决定要传送哪些文件以及将它们放在哪里。所以,不,您不能仅通过引用 .csproj 来设计和构建 MSI。

关于c# - 可以使用 MSBuild + .csproj 文件创建 msi 安装程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23631740/

相关文章:

c# - 在 MvvmCross 中将单个 View/ViewModel/Xaml 链接到多个 Json 资源文件的最佳方式

.net - NEST 7:如何获取每个文档的出现编号?

c# - 分组 ListView 中的项目不更改组

c# - 使用 XML 作为小型 C# 应用程序的数据持久性的好方法是什么?

c# - Visual Studio 2013,JavaScriptExecutor 使用指令

visual-studio - Visual Studio 9.0 错误 C2051 大小写表达式不是常量

node.js - 如何在 VS2015 中更新 Node 和 npm?

c++ - 我应该买哪种书来学习如何在Visual Studio 2010中开发c++应用程序。

javascript - 从js代码赋值给mvc razor的隐藏字段

c# - 事务登记性能问题