- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我看来,ClickOnce 应用程序无法与 Windows Firewall 顺利运行。 .
我已经成功使用 ClickOnce 部署两年了。现在企业已升级到Windows 7,这遇到了障碍。每个用户的配置都发生了变化:
ClickOnce 的工作原理如下:每次更新 ClickOnce 应用程序时,可执行文件都会复制到新目录。该目录有一个机器生成的名称。 (例如,它可能部署到“C:\Users\andrew.shepherd\AppData\Local\Apps\2.0\GTTG5EJB.AVG\jc69hir.e45\watershedclient.exe”)。
默认情况下,Windows 防火墙会阻止应用程序接受传入调用。但是,当应用程序第一次尝试执行此操作时,Windows 防火墙会弹出一个对话框,允许管理员为应用程序设置异常(exception),并授予其所需的权限。
问题是,Windows 防火墙将应用程序记录存储为完整文件路径。每次更新 ClickOnce 应用程序时,它都会安装到不同的目录。因此,Windows 防火墙将其视为一个全新的应用程序。管理员现在必须为每台更新的计算机配置此更新的防火墙。这实际上否定了我们使用 ClickOnce 技术的全部原因。
这是 flagged as an issue 2005 年,微软承认了这个问题,并承认没有解决方案。
这个问题解决了吗?
最佳答案
The problem is, Windows Firewall stores the application record as the full file path. Each time a ClickOnce application is updated, it installs to a different directory. Therefore, Windows Firewall sees it as a whole new application.
此处的一种方法是编辑规则名称,使其仅指定 EXE 的名称而不是完整路径。例如。我本地部署的“Hello World”应用程序是通过 ClickOnce 安装在此路径上的:
C:\Users\jdoe\AppData\Local\Apps\2.0\BNYJV8NM.JT8\DGEMYJV2.ZN7\hell..tion_32be098505965508_0001.0000_ad51d60d7593998b\HelloWorld.exe
并且可以使用仅适用于“HelloWorld.exe”的防火墙规则。然而,这会产生一个安全漏洞,因为该规则适用于具有该名称的任何应用程序。我们可以通过指定一些路径来进一步细化规则:
%LOCALAPPDATA%\Apps\2.0\BNYJV8NM.JT8\DGEMYJV2.ZN7\*\HelloWorld.exe
请注意,我还使用了一个环境变量,它显然是为了测试防火墙规则而扩展的。
关于ClickOnce 应用程序和 Windows 防火墙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3818034/
我有一个使用 ClickOnce 部署的 WinForms 应用程序。在应用程序项目中,我将一些文件标记为“内容”,它们在“发布”设置的“应用程序文件”对话框中也标记为“数据文件”。我还有一些标记为“
理想情况下,调用 setup.exe 时根本不会弹出任何窗口,但最好是让用户不必在安装先决条件和其他选项时单击“确定”。甚至可以使用 ClickOnce ? 最佳答案 附加文件 附加组件(文件和 DL
我部署了一个新版本的 ClickOnce 应用程序 我在测试客户端机器上打开我的 ClickOnce 应用程序 不提供升级 我关闭我的 ClickOnce 应用程序并重新打开它,现在提供升级 为什么我
我们部署了一个名为“Its Our App”的 Winforms 应用程序。 人们将其称为 IOA。我想保留快捷方式的全名,但我看到许多用户在键盘上按下 Windows 键,输入 IOA,然后奇怪地说
好的,我有一个 Windows Forms使用 ClickOnce 发布的应用程序到http://MyDevComputer1/DevPublishFolder/ ,所以部署链接是 http://My
.NET ClickOnce 应用程序被部署到 C:\Documents and Settings\\Local Settings\Apps\2.0 的子文件夹中。在开发过程中,我们倾向于进行大量的小
自 ClickOnce每个配置文件而不是每台计算机安装,有没有办法同时从多个配置文件卸载单个 ClickOnce 客户端应用程序? 我们有一个 ClickOnce 应用程序,我们希望使用标准 MSI
对于不同的环境,我们有多个具有不同配置文件的相同程序集的部署。我们将这些打包成具有不同部署标识(Program_ENV1、Program_ENV2 等)的单独 ClickOnce 部署。 应用程序标识
我有一个简单的 WinForms 应用程序,我正在使用 ClickOnce 在内部部署它。主应用程序有一个依赖程序集,该程序集有一些 xml 模板文件在构建属性中标记为“内容”和“始终复制”,但是如果
有没有办法在不提示用户的情况下安装 ClickOnce 应用程序?我说的是用户第一次运行应用程序时得到的“运行/不运行”。 似乎有一些线索here但我相信这是关于跳过“海拔”(UAC)和安全提示,而不
我有一个 ClickOnce 应用程序,在它安装到客户端机器上后,它第一次启动时会创建文件夹 X、Y 和 Z。 现在,当用户开始使用应用程序时,他/她会在这些文件夹中创建各种文件。稍后应用程序的新版本
有没有一种方法(hacky 可以)允许用户返回到 ClickOnce 的先前版本网络部署的应用程序? 我查看了文档和API,似乎没有办法。您可以选择性地选择是否要更新,但一旦更新,似乎就无法返回。 最
我了解 ClickOnce 应用程序可以自动更新。但是,Microsoft 提供的选项并不是我想要的。 如果我在应用程序启动前检查版本,启动会比较慢。 如果我在应用程序启动后检查版本,直到下次启动时我
在我的 ClickOnce c# 应用程序中,如何判断用户是否刚刚更新了应用程序?我愿意在用户下载更新后显示发行说明或更改日志。 我知道如何以编程方式(拼写?)检测更新是否可用,并手动执行更新。那时我
为我的 ClickOnce 应用程序的用户提供降级到以前版本的方法的推荐方法是什么? (以防新版本不能在他们的机器上运行) 最佳答案 在 ClickOnce 部署设置中,将最低要求版本保留为旧版本。这
我了解 ClickOnce 应用程序可以自动更新。但是,Microsoft 提供的选项并不是我想要的。 如果我在应用程序启动前检查版本,启动会比较慢。 如果我在应用程序启动后检查版本,直到下次启动时我
众所周知,当我们双击已安装的 clickonce 应用程序时,会弹出一个“clickonce 屏幕”,上面写着“正在验证系统要求”。然后如果服务器中有更新版本,clickonce 更新本地安装的版本,
我即将部署一个 ClickOnce 应用程序供内部使用。我将亲自将应用程序分发给一组受信任的用户。我知道可以对 ClickOnce list 进行签名,但是当用户信任来源时是否需要签名? 不签署 li
我们非常接近以 ClickOnce 部署的形式发布我们的第一个产品,但是有几个烦人的问题我似乎无法解决...... 我知道在 ClickOnce 部署 list 中,ClickOnce 需要 Wind
我正在为客户端开发一个 Windows .NET 4 桌面应用程序,并且正在考虑使用 ClickOnce从客户的网站部署它。我还计划从他们的网站部署应用程序版本升级。 我已经阅读了 StackOver
我是一名优秀的程序员,十分优秀!