-1

目前我有2个exe文件。app.exe 和 updater.exe。当 app.exe 发现有新版本可用时,它会运行 updater.exe,它会下载并替换它。

我想知道是否可以将 updater.exe 构建到 app.exe 中。在应用程序启动时,它应该检查目录中是否有 updater.exe,如果没有,则将其解压缩。任何帮助表示赞赏。

4

3 回答 3

2

您可以将 updater.exe 作为资源集成到 app.exe 中。以下 SO 帖子显示了如何在运行时提取它:

请注意,如果您的应用程序位于默认应用程序目录(C:\Program Files或更一般地说,%ProgramFiles%)中,您将无权在同一目录中创建文件(这是一件好事)。因此,您可能需要将 updater.exe 提取到当前用户具有写入权限的临时目录中(例如Path.GetTempPath)。

于 2012-09-12T20:41:00.310 回答
0

有关遍历和列出目录内容,请参阅http://msdn.microsoft.com/en-us/library/system.io.directory.aspx

要访问您的嵌入式资源,请参阅http://msdn.microsoft.com/en-us/library/xc4235zt.aspx

要将二进制数据写入磁盘,请参阅http://msdn.microsoft.com/en-us/library/system.io.binarywriter.aspx

要从磁盘运行 exe,请参阅http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx

于 2012-09-12T20:49:46.150 回答
0

当我正确理解您时,您需要将 updater.exe 作为资源打包到 app.exe 中。解压它,当 App.exe 启动时。

但我可以告诉你,这个带有替换的想法很糟糕。您应该选择一个 MSI 包来部署您的应用程序。

于 2012-09-12T20:32:40.583 回答