处理点击一次的更新位置

时间:2010-05-25 00:09:38

标签: clickonce

我不确定这里有多少人是视觉工作室的专家,但我想象一下(不是为了提高期望,而是为了吸引你的自负:P)。

我现在主要在visual basic工作(虽然我希望在不久的将来切换到c#,也许是java或web应用程序。)

基本上我正在尝试创建一个类似于firefox或itunes等常见程序自动更新的更新功能。应该在所谓的点击一次中为此提供功能。

我尝试将程序的更新URL更改为受密码保护的ftp位置时执行以下过程并出现以下错误。

转到项目属性

转到发布

点击更新

点击浏览

单击“FTP站点”

在Server put:web ###。opentransfer.com

在港口:21

在目录下:CMSOFT

选择被动模式(这是filezilla告诉我访问服务器的原因)

取消选择匿名用户,并在

中输入用户名和密码

按“确定”

在更新位置下,显示:ftp://web###.opentransfer.com/CMSOFT

我推好了

我看到一个标题为带有x图标的Microsoft Visual Basic 2010 Express的消息框

Publish.UpdateUrl:字符串必须是完全限定的URL或UNC路径,例如“http://www.microsoft.com/myapplication”或“\ server \ myapplication”。

我已尝试将目录更改为“CMSOFT / PQCM.exe”,结果相同...希望这个描述性足够。

3 个答案:

答案 0 :(得分:3)

使用ClickOnce部署(Visual Studio中的发布选项卡),您可以使用FTP发布到Web服务器或文件共享。您无法使用FTP安装ClickOnce应用程序。您必须使用http或文件共享(如您所发现的)。 (您也可以发布到CD并以这种方式提供部署,但这对您没有任何帮助。)

如果您的目的是保护ClickOnce部署,唯一真正的方法是使用Windows集成安全性来保护默认部署清单(.application文件)。当然,这仅适用于公司内部网络上托管的应用程序。

您的另一个选择是密码保护调用安装URL的页面,但这不是100%安全,因为任何人都可以获得setup.exe或.application文件的链接并直接运行它浏览网页。

我们通过要求客户在启动时登录我们的应用程序来提供保护。因此,他们可以安装ClickOnce应用程序,但除非他们是有效用户,否则他们不能使用它。

答案 1 :(得分:0)

我的评论存在格式问题,所以我会在这里回答你的问题。

设置链接&部署包
http://support.microsoft.com/kb/307353
http://msdn.microsoft.com/en-us/library/tw8kdk75.aspx
http://msdn.microsoft.com/en-us/library/k3bb4tfd.aspx
我的专长是ClickOnce部署;我对S& D包裹知之甚少。 AFAIK,专家是Phil Wilson,他在MSDN ClickOnce和Setup& amp;部署论坛。他是个聪明人。

另请注意设置&部署项目类型在VS的Express版本中不可用。

为什么用户需要访问可执行文件?

如果您希望人们能够在没有安装应用程序的情况下运行应用程序,为什么不只是执行\ bin \ release文件夹的XCopy并让它们将它放在任何他们想要的位置,然后通过exe文件?

Microsoft将程序安装到Program Files没有问题;它不适用于ClickOnce应用程序。在Program Files中安装需要管理员权限,这与ClickOnce部署的设计目标背道而驰。 C / O的目的是提供一种不需要管理权限的轻量级部署方法。它将文件安装在用户的配置文件下,并使它们与其他任何内容分开进行缓存,因此您可以确保安装ClickOnce部署不会弄乱计算机上的任何其他内容。这给了IT人一种温暖的模糊感觉。作为一个顾客,它会给我一种温暖的模糊感觉,因为我不必担心地狱或类似的东西会影响我。 C / O部署的另一个重要功能是自动更新,这意味着您可以确保用户获得自动更新,并且他们始终运行最新版本的应用程序,而您几乎不需要付出任何努力。

您似乎希望能够强制用户运行最新版本(即升级),但您不希望在特定位置安装应用程序,或者要求安装它。这两件事情是相互对立的,而我所知道的唯一方法就是编写自己的部署包装。

我没有看到如何将应用程序放在用户计算机上的某个文件夹中,甚至可以让您进行程序化更新。 ClickOnce确实有一个可以调用以检查更新的APi,实际上应用程序必须托管在文件共享或Web服务器上。如果你必须将文件发送给用户并让他把它们放在一个特定的文件夹中,那么他就可以运行应用程序并获得更新,这只是矫枉过正。只需将文件发送给他,让他把它们放在一个特定的文件夹中,你的工作就完成了。

答案 2 :(得分:0)

visual studio和C / O文档之间存在很大差异。 http://msdn.microsoft.com/en-us/library/bb608591.aspx 纠正我,如果我错了,在MSDN上,它说安装文件夹可以是本地的,但实际上它只允许UNC文件夹。

如果有一种方法可以指定每个文档的本地路径,那将会更好。

相关问题