目前我有2个exe文件。 app.exe和updater.exe。当app.exe发现有新版本可用时,它运行updater.exe,下载并替换它。
我想知道是否可以将updater.exe构建到app.exe中。在应用程序启动时,它应该检查目录中是否有updater.exe,如果它不是提取它。任何帮助表示赞赏。
答案 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