使用 Visual Studio 2017 安装项目为 C# Windows 表单创建 Exe/MSI

Creating Exe/MSI for C# Windows Forms using Visual Studio 2017 Setup Project

我正在尝试为我的解决方案创建exe/msi

它包含以下项目

  1. ActiveDirectoryEngine:用于实现AD操作的库
  2. ADService:windows 服务 - 在后台执行工作
  3. CryptographyEngine:用于encrypt/decrypt数据的库
  4. TerranovaActiveDirectoryHost:Dashboars/win 表单到 manage/check 服务状态
  5. SyncToolSetup:安装项目"it only targets TerranovaActiveDirectoryHost"

安装项目的内容如下:

我对不同的解决方案尝试了相同的步骤,只有一个 windows 表单应用程序,它运行良好,但当我有多个引用项目时它看起来不起作用。

未启用安装和卸载选项

更新:

所有以前的项目都在 Win 窗体项目中引用,所以我在创建 exe/msi 时是否瞄准了正确的项目?

唯一带有安装选项的项目是安装项目。解决方案中的其他项目没有安装选项,只是因为有一个安装项目作为解决方案的一部分。

非安装项目(例如 C# 构建)中的引用不会自动包含在安装项目中。用于构建代码的引用不一定是需要在目标系统上安装的东西。该设置将尝试帮助解决依赖关系,但它不可靠,而且只是一个指南。例如,您的“应用程序文件夹”视图包含一些属于 .NET Framework 一部分的文件,您肯定不会安装它们,因为它们是作为标准 .NET Framework 安装的一部分安装的。

必须告诉安装项目需要在目标系统上安装什么。通常有两种方法:

  1. 选择项目输出作为安装项目的输入。这可能是相当不确定的,因为并不总是很明显包含哪些文件,或者如果文件需要安装到不同位置时该怎么做。

  2. 添加您知道需要的文件,方法是将它们添加到需要安装到的目录的文件系统视图中。通常,可执行文件进入应用程序文件夹(默认为 Program Files..),数据文件进入用户的应用程序数据,共享文件进入 Common Files 文件夹,一些程序集进入 GAC 等等。