0

有没有办法在没有任何安装程序的情况下将 VS2012 App (WPF) 发布到 .exe?我知道如何使用 ClickOnce 安装程序,但我想知道是否可以更进一步。

许多小程序似乎以 .rar 的形式出现,其中包含一些应用程序文件和一个无需安装即可运行的 .exe。这在VS2012中可能吗?(或 2010 年)

4

3 回答 3

4

是的,当然,这是可能的。只需在 Release 模式下编译您的应用程序,然后在 Release 文件夹中获取所有内容。

于 2013-03-28T13:41:47.780 回答
1

这可以通过 Visual Studio 2012 实现,具体取决于您的需求和开发应用程序的方法。我将列出几个选项,但不要认为这是详尽无遗的,因为有很多方法可以完成同样的事情。我假设您想要为用户提供“一键式”解决方案。

  1. 您可以将应用程序的所有资源嵌入到应用程序中,让您的用户能够简单地下载或复制 .exe 并从任何地方运行它,并且它“正常工作”。

优点:唯一可以满足您要求的方法。无需安装程序的单个 .exe。

缺点:如果不重新编译应用程序,您将无法编辑任何嵌入式资源。出于同样的原因,您也不能存储用户设置(尽管您可以在其中App_Data或类似文件中静默创建设置文件)。

  1. 自解压存档。这是您在问题中提到的 WinRAR 方法。您将应用程序嵌入到自解压存档中,该存档设置为提取到用户 Temp 目录或 App_Data(或类似目录)并在成功提取后启动您的 exe。

优点:您可以更新资源,因为它们没有嵌入到您的实际应用程序中。

缺点:从技术上讲,这仍然是一个安装程序;尽管它是一个非常轻量级且独立的。

还有更多,比如点击一次;等等,但这解释了总体思路。

注意:需要安装正确的 .NET 版本才能像我描述的那样简单地工作。

于 2013-03-28T13:55:19.757 回答
0

以下是我能想到的安装程序会处理您需要担心的问题:

  1. 正确的 .NET 框架已经存在。
  2. 您从 GAC 引用的任何程序集都已安装。
  3. 您不需要授予任何自定义注册表项或权限。
  4. 当用户未以管理员身份运行时,您的应用不会访问任何会阻止其在“低信任”环境中工作的内容。

当然还有更多,但基本上如果您的应用程序是独立的并且不使用任何外部资源并且安装了正确的 .NET 框架,您应该能够复制构建输出并继续。

于 2013-03-28T13:51:10.110 回答