如何在安装下载时将用户特定数据嵌入到 .NET Windows 安装应用程序中?
我希望在我的 ASP.NET 网站上有一个链接,经过身份验证的用户可以单击该链接来下载已预先配置了其客户端 ID 和一些站点配置数据的 Windows 应用程序。 我的目标是在客户端应用程序安装过程中用户无需输入内容,这既是为了用户友好性,也是为了避免因输入错误的技术位而导致的配置错误。 理想情况下,我希望 Web 服务器端代码作为 ASP.NET 应用程序的一部分运行。
FogBugz 似乎做了类似的事情。 Web 应用程序中有一个菜单选项用于下载屏幕截图工具,当您下载并运行安装程序时,它会知道您的特定 FogBugz 网址,因此可以将屏幕截图发送到那里。 (嘿乔尔,正在寻找要回答的问题吗?提示-提示)
I'd like to have a link in my ASP.NET web site that authenticated users click to download a windows app that is already pre-configured with their client ID and some site config data. My goal is no typing required for the user during the client app install, both for the user friendliness, and to avoid config errors from mis-typed technical bits. Ideally I'd like the web server-side code to run as part of the ASP.NET app.
FogBugz seems to do something like this. There is a menu option within the web app to download a screenshot tool, and when you download and run the installer, it knows your particular FogBugz web address so it can send screenshots there. (Hey Joel, looking for a question to answer? hint—hint)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
FogBugz 屏幕截图安装工具执行此操作的方式是,在下载安装程序时,它会在安装程序的末尾附加一个 256 字节的块。 换句话说,下载脚本会吐出 setup.exe 中的所有字节,然后吐出额外的 256 个字节,其中包含 FogBugz 服务器的 url,再加上任何填充。
运行 .exe 时,Windows 会忽略这些额外字节(前提是您关闭了安装程序的 CRC 检查 - 我们使用 InnoSetup)。
安装后,我们使用命令行开关运行 Screenshot 程序,告诉它安装程序的位置。 它查看 setup.exe 的末尾并找到它的信息,然后将其写入注册表,这样用户就不必知道它。
The way the FogBugz screenshot setup tool does this is that it appends a 256 byte block at the end of the setup program at the moment it is downloaded. In other words, the download script spits out all the bytes from setup.exe and then an extra 256 with the url for the FogBugz server, plus any padding.
Windows ignores these extra bytes when the .exe is run (provided you turned off the CRC check for your setup installer - we're using InnoSetup).
After installation, we run the Screenshot program with a command line switch that tells it where the setup installer is. It looks at the end of the setup.exe and finds it's info, and then writes that to the registry so the user doesn't have to know it.
如果它有帮助,RegexBuddy 也会这样做。
If it helps RegexBuddy does this also.
信息需要安全吗? 如果没有,ClickOnce 可以使用基于 URL 的参数。 这是 MSDN 上有关此内容的文章。
Does the information need to be secure? If not, ClickOnce can use URL-based parameters. Here's an article about that on MSDN.