【问题标题】:How do I make my Setup project produce an executable?如何使我的安装项目生成可执行文件?
【发布时间】:2019-10-25 13:16:07
【问题描述】:

我已经构建了一个小型桌面应用程序,我正在尝试使用一个安装项目来允许其他用户安装它。但是每当我运行这个安装程序时,它都不会生成一个可执行文件。这是我第一次做设置项目。

我的解决方案包含两个项目。一个是安装项目,它安装来自另一个项目的主要输出。另一个项目是一个 WPF 应用程序,它由两个 xaml 文件、一个 xaml.cs 文件、一个 App.config 文件和一个图标组成。它还具有一些依赖项,包括一个程序集、两个框架和一些包。每当我在 Debug 或 Release 配置上启动 Visual Studio 调试实例时,该应用程序就可以完全按照预期工作。

我跟随these instructions 构建我的安装程序并部署我的应用程序。

每当我运行生成的安装程序时,它都会为我的程序集安装一个 XML 配置文件、一个 JSON 文件、一个主应用程序 dll 文件和一堆 dll 文件。我查看了一些关于如何正确运行主 dll 文件的资源,只有 (A) 我完全被我在该主题上找到的所有内容所难倒,并且 (B) 我宁愿只生成一个可执行文件,因为我打算这个安装项目供其他人使用,如果要求其他人跳过相同的圈子来运行它会很不方便。

为什么我的安装项目不生成 .exe 文件?每当我构建我的项目时,我都会在我的 bin 文件夹中看到一个 .exe 文件(并且这个 .exe 有效),所以我认为安装项目也应该产生其中一个,但事实并非如此。我的安装项目或其他什么做错了什么?

【问题讨论】:

  • 在 .NET Core 3.0 上使用 WPF,然后您可以生成单个可执行文件进行部署。那么你甚至不需要 MSI 安装程序(尽管你可以)。
  • 我需要比这更具体的术语/说明。 “在 .Net Core 3.0 上使用 WPF”是什么意思?每当我首先创建此项目时,我都选择了“WPF App”选项,并且该项目的属性已经将 .NET Core 3.0 列为其目标框架。如果这应该已经生成了一个用于部署的可执行文件,我在哪里可以找到/生成它?如果不是,我需要改变什么?或者你是说我在问题的最后一段中提到的 .exe 文件是我可以部署的单个可执行文件(我假设我不能只部署那个)?
  • 任何搜索引擎都应该引导您进入 .NET Core 3.0 的第一个教程docs.microsoft.com/en-us/dotnet/core/whats-new/…

标签: wpf visual-studio deployment executable setup-project


【解决方案1】:

setup.exe 是 setup.msi 的引导程序。我们可以使用 .msi 或运行 .exe 来安装内容,该 exe 又会运行 / 从 msi 中获取数据。要启用 setup.exe 构建,请转到解决方案资源管理器 -> 项目 -> 属性 -> 先决条件。选中“创建安装程序以安装必备组件”顶部的复选框。申请并重建项目。将与 msi 一起创建 setup.exe 引导程序。

【讨论】:

    【解决方案2】:

    切换到发布模式,然后重新构建您的安装项目。如果一切顺利(检查输出控制台),您会在 {setup project folder}/bin/Release 中找到一个 MSI 文件

    【讨论】:

    • 我看到的结果与我在调试模式下执行的结果完全相同,并且输出控制台告诉我没有错误。没有 MSI 文件或 .exe。我应该更具体地说明我对这个过程知之甚少。例如,我根本不知道 MSI 文件是什么,据我所知,我的最终目标应该是让安装程序生成一个 .exe。这是我第一次制作安装项目。我什至不知道如何 100% 确定我包含了所有正确的 dll 文件或任何东西,我只是“非常确定”我包含了我正在使用的依赖项的 dll。跨度>
    • 哦,等等,让我纠正一下自己。我看到 MSI 是设置应用程序。这就是我在问这个问题之前一直在做的事情——我在构建安装项目之后成功地创建了一个 MSI。我的问题是,在我运行 MSI 后,它不会生成我安装的项目的 .exe。当我谈论“结果”时,我指的是运行 MSI 后创建的文件。对此我不够清楚,我深表歉意。
    • 我的错,你说得很清楚。反正。这很奇怪。它应该产生一个.exe,我已经做了十亿次,从来没有遇到过这样的问题。必须是未正确配置的安装项目。您遵循的教程适用于 c++。从这里开始:docs.microsoft.com/it-it/visualstudio/deployment/…
    • @Chris H 也许你可以在桌面上为“primary output”创建一个快捷方式来检查exe是否可以运行。
    【解决方案3】:

    在项目安装程序的“系统文件”中,您应该在“应用程序文件夹”中添加下一个源 = PublishItemsOutpuGroup。在我的情况下运行良好。

    【讨论】:

      猜你喜欢
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多