【问题标题】:What is the standard way of creating an online installer?创建在线安装程序的标准方法是什么?
【发布时间】:2014-07-07 09:52:29
【问题描述】:

我的意思是类似于 Visual Studio 的安装程序,其中安装程序是一个非常小的应用程序,它反过来会下载实际的应用程序。我想要实现的是对安装有更多的控制 - 如果我们发布新版本 - 我们希望所有安装都是新版本(而不是常规安装程序,无论何时使用它都会安装相同版本)。

我知道 Clickonce,但它只为一个用户安装程序。

有一些标准的方法吗?有模板吗?我不是在寻找任何第 3 方软件。我正在寻找一种在 Visual Studio/任何其他 Microsoft 技术中对此或其他内容进行编码的标准方法。

【问题讨论】:

  • 看看at this供参考
  • 我经常需要在未联网的机器上安装东西,而仅下载安装程序是我生活的祸根。如果您认为您的某些用户可能需要它们,请考虑提供标准安装程序(或“从缓存文件安装”选项)!
  • @jam 感谢您的评论!也许我们可以同时提供这两种类型。
  • @YuliamChandra 谢谢。如果我们确实使用 clickonce,那是个好主意。
  • 如果您只使用 .net,您可以使用应用程序配置文件中的 Codebase 设置来重定向加载程序以获取您的最新代码。 msdn.microsoft.com/en-us/library/efs781xb(v=vs.110).aspx

标签: c# .net visual-studio deployment installation


【解决方案1】:

这未经测试,但您可以调用 msiexec 吗?它将远程 URL 作为您的 msi 文件的有效位置。我发现了几篇可能对此有所帮助的文章:

说可以这样做: http://msdn.microsoft.com/en-us/library/aa368328(v=vs.85).aspx

此答案具有使用 Windows 安装程序 COM 对象执行此操作的 C# 代码: Programatically installing MSI packages

从问题中回答 sn-p: 使用系统; 使用 WindowsInstaller;

namespace TestApp
{
    public class InstallerTest
    {
        public static void Install()
        {
            Type type = Type.GetTypeFromProgID("WindowsInstaller.Installer");
            Installer installer = (Installer)Activator.CreateInstance(type);
            installer.InstallProduct("YourPackage.msi");
        }
    }
}

如果您需要在安装程序中添加开关或在更新版本时部署 .msp 升级,这里是完整的模型:

http://msdn.microsoft.com/en-us/library/aa369432%28v=VS.85%29.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-28
    • 2011-01-15
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多