【发布时间】:2026-01-23 03:35:02
【问题描述】:
这是我的第一个 Stack Overflow 问题,如果这不是很好,敬请见谅......
我确定这是我缺少的超级简单的东西,或者是我自己陷入的非常复杂的东西,但我第一次使用 ClickOnce 为我开发的公司应用程序创建自动更新程序。
应用程序本身最初是用 VB 编写的,但我已将其翻译成 C#。我们使用它来自动化资产数据库,该数据库变化非常频繁。我的任务是让它完成自动更新,以免让一些技术人员混淆每周卸载/重新安装应用程序。
我自愿使用我在家里使用的个人服务器机器制作 FTP 服务器。通常这台机器会用于本地网络,但我想创建一个 FTP 服务器已经有一段时间了(这也是我的第一个 FTP 服务器)。
所以我继续前进,将构建的发布位置设置为 ftp://[IP.ADDRESS]:21/Folder/Subfolder,将安装文件夹 URL 设置为 http://[IP.ADDRESS]:21/Folder/Subfolder
长话短说,当我尝试测试更新(仅更改程序集版本)时,我出错了:
System.Deployment.Application.DeploymentDownloadException:下载 http://[IP.ADDRESS]:21/Folder/Subfolder/applciation.application 未成功 ---> System.Net.WebException:服务器违反协议.
我做了一些研究并尝试添加 SSL 证书并将更新路径更改为 https://[IP.ADDRESS]:21/Folder/Subfolder/ 然后对其进行了测试。这一次,我得到了这个错误:
System.Deployment.Application.DeploymentDownloadException:下载 http://[IP.ADDRESS]:21/Folder/Subfolder/applciation.application 未成功 ---> System.Net.WebException:底层连接已关闭:发送时发生意外错误。 --> System.IO.IOException: 由于格式异常,握手失败。
我不知道这是进步还是我在这里倒退了哈哈。我一直在跳来跳去,去很多线程试图找出哪里出了问题。我也很难确定这是否是我设置 ClickOnce 的错误,或者这是否是我使用 IIS 设置 FTP 的错误。
如果信息不足,我深表歉意,如有必要,我可以提供更多信息。如果信息太多,也很抱歉!任何帮助或指导表示赞赏!
【问题讨论】:
-
不清楚为什么需要每周卸载/重新安装应用程序,或者为什么需要每周“更新”应用程序——这似乎是糟糕的设计。
-
以下内容可能会有所帮助:How to: Download files with FTP
-
@user9938 它每周更新一次,因为它们会更改与每种资产类型相关的资产类型和合同。程序本身会更新这些资产并将它们加载到数据库中。他们想经常更改它的选项