Updater.exe内置到app.exe中

时间:2012-09-12 20:26:33

标签: c# .net wpf

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

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

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分: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