Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于部署/更新的.NET编程文件下载_.net_Vb.net_Clickonce_Squirrel.windows - Fatal编程技术网

用于部署/更新的.NET编程文件下载

用于部署/更新的.NET编程文件下载,.net,vb.net,clickonce,squirrel.windows,.net,Vb.net,Clickonce,Squirrel.windows,过去几天我一直在尝试设置家庭FTP服务器,但我的防火墙让我很难 我的目标是在可移植的.NET应用程序中模拟单击一次应用程序的功能。我有一个完成的可移植EXE文件,在运行时使用My.Application.info.directorypath访问同一目录中的多个数据读/写文件夹。出于这个原因,我不想在安装时执行已发布的应用程序,因为许多用户没有对其程序文件目录的写入权限。此外,我有在Mac/Linux上使用WINE的用户以及XP用户。我认为,如果我不再是便携的,那么尝试获得与目前相同的兼容性是有问

过去几天我一直在尝试设置家庭FTP服务器,但我的防火墙让我很难

我的目标是在可移植的.NET应用程序中模拟单击一次应用程序的功能。我有一个完成的可移植EXE文件,在运行时使用
My.Application.info.directorypath
访问同一目录中的多个数据读/写文件夹。出于这个原因,我不想在安装时执行已发布的应用程序,因为许多用户没有对其程序文件目录的写入权限。此外,我有在Mac/Linux上使用WINE的用户以及XP用户。我认为,如果我不再是便携的,那么尝试获得与目前相同的兼容性是有问题的

我的计划是编写第二个应用程序作为启动器/更新程序。它将使用web客户端读取具有当前软件版本号的托管文件。如果已过期,它将提示用户,然后使用
WebClient.DownloadFile
下载最新软件的压缩包。用新的替换旧的,然后启动应用程序

SomeLauncher.exe
-> application sub-folder -> TheAppToRun.exe
唯一的问题是这是非常病毒的esk。。。我不认为它可能做一个编程文件下载,并让它只是在后台替换文件

有没有人对如何处理这种情况有什么好的部署技巧?另外,对于可以通过编程方式读取的文件托管位置,任何人都有一个很好的建议(我可以使用Github,但我想这是不受欢迎的…)


我正在考虑使用,但是我的WINE或XP用户都不能使用它。

您可以让更新应用程序充当“启动器”,验证是否需要更新,可以选择将其下载到子文件夹并解压缩,然后运行实际的应用程序

SomeLauncher.exe
-> application sub-folder -> TheAppToRun.exe
我认为这样可以避免锁定文件时出现问题

编辑:网络客户端


“背景”是指秘密吗?这可能不可能,取决于部署模型;更新程序模块可能需要以管理员身份运行。这并不完全是一件坏事-用户应该知道他们的软件何时在其系统上更新某些内容。ClickOnce不会安装到Program Files文件夹,它会将应用程序安装到用户的“我的文档”下的“应用程序数据”文件夹。@Protoix我不同意授予应用程序管理员访问权限只是为了提醒用户“需要更新”是更新应用程序的正确(安全)方法。正如我所说的,根据部署方式,可能需要它。@Matt我仍然倾向于ClickOnce部署,因为您可以通过VS部署新的清单简化一切并将其部署到Azure,应用程序ping清单端点以验证并更新到最新版本(可能会询问用户)。但是,您必须跨设备测试它,看起来WINE支持ClickOnce,您只需要安装.NET。我知道ClickOnce在XP、Win 7和Win 10上运行良好。但无论你选择什么,祝你好运!杰森,这正是我试图在上面描述的。问题是下载部分。如何从.NET应用程序实现“WebClient.DownloadFile”?我很难得到文件的html以外的任何东西,而不是实际的原始文件。也许这只是我使用的文件托管站点的一个限制。@Matt我不知道如何处理该文件类型,但我链接到了MSDN的文档。看看它是否适用于您的文件类型。这就是我在我的“Launcher”应用程序中实现它的方式。它一定是我的文件主机。你能推荐一个允许程序文件下载的文件主机吗?我现在正在查看Azure。我认为主机并不特别关心“编程”文件下载,只是您当前的提供商可能会阻止下载该扩展。根据您的需要,您可以查看Azure,因为您的带宽成本最终可能会相对便宜。如果您需要比简单文件托管更多的功能,那么共享托管在经济上可能更可行。请确保使用云选项的定价计算器,但我会首先尝试Azure,因为您可能会获得免费试用。