C# 部署我的应用程序 - 仅从 Web 单击一次

2023-11-27

所以我用 C# 开发了我的应用程序。我已准备好部署它。我想让用户始终从我的网站启动它(以便他们始终获得更新,无需安装等)。

ClickOnce 是执行此操作的正确方法吗?

我尝试将 ClickOnce 部署到我的服务器上,但我发现了一些事情:

1) 用户可以选择运行安装程序或启动 .application 文件 - 有什么区别?它自己不能检测到吗?

2)当我尝试“启动”.application 时,它要求将其下载到我的计算机上。无论如何,直接从浏览器启动文件?

3) 下载并运行 .application 文件后,出现错误并显示以下消息:“部署和应用程序没有匹配的安全区域。”


是的,ClickOnce 非常适合您的需求。

  1. The setup.exe或称为“bootstrapper”,用于安装先决条件,例如 .NET Framework 和 Microsoft Installer,因为它是包含 ClickOnce 运行时的 .NET 框架,安装应用程序需要该运行时。引导程序只需使用一次,并且仅在不具备这些先决条件的计算机上使用,之后只需使用.application文件称为“部署清单”,用于更新。当您使用 ClickOnce 进行发布时,Publish.htm创建文件,其中包含一些 JavaScript 代码,用于检测用户是否安装了先决条件。如果用户不这样做,它会显示一个链接到的按钮setup.exe,否则它会显示一个直接链接到的按钮.application文件。您可以使用该页面(或基于该页面创建页面)为用户提供尽可能短的安装体验。

  2. 客户端计算机上未安装 .NET Framework(在本例中,使用引导程序),或者您的 Web 服务器配置不正确,因此未关联.applicationMIME 类型的扩展名application/x-ms-application。创建该关联来解决问题。我还建议添加一些 http 标头以禁用部署清单上的缓存,否则用户的浏览器可以缓存它,并可能导致用户丢失更新。

  3. 您无法在本地下载并运行发布到 Web 位置的 ClickOnce 安装的部署清单文件,因为 ClickOnce 为本地安装(例如从本地计算机或网络共享)提供了更高的信任级别,但应用程序清单指向到网络上的安装源,该安装源的信任级别较低,因此会失败。一旦解决了问题2,这个问题也就解决了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 部署我的应用程序 - 仅从 Web 单击一次 的相关文章

随机推荐

  • 何时发生 Windows Phone 中的 System.Windows.ni.dll 中发生类型为“'System.Reflection.TargetInitationException'”的未处理异常

    我正在创建一个WP8使用的应用程序Web Service获取 创建 更新和删除数据并显示它 现在的问题是我的应用程序因抛出而崩溃 未处理的类型异常 System Reflection TargetInitationException 发生在
  • 如何使用 Hibernate eqOrIsNull()

    我在 MySQL 中有两行是这样的 foo bar NULL 空的地方是空字符串 现在我想同时拥有它们 我用Criteria and Restrictions eqOrIsNull 在两列上 但它总是只返回一行 代码是这样的 criteri
  • Windows 7 任务栏图标突出显示颜色

    谁能解释当鼠标悬停在任务栏项目上时 如何根据 Windows 7 任务栏等图像中的主色计算突出显示颜色 有c 代码吗 我相信它的作用是使用类似于以下的方法来获取应用程序图标中最突出的颜色 Python 查找图像中的主要 最常见颜色 有了这些
  • Linux 何时/如何将共享库加载到地址空间?

    程序中什么时候指定共享对象的地址 链接期间 加载中 如果我想找到的内存地址system里面的命令libc在我的程序中我可以轻松找到它gdb 但是如果我不想将程序带入调试器怎么办 这个地址在不同的运行中会改变吗 是否有任何其他静态分析工具可以
  • 在 Web Api 2 中启用会话[重复]

    这个问题在这里已经有答案了 我知道 REST 应该是无状态的 我的 Web Api 与我的 MVC 网站位于同一项目中 我如何在他们之间共享会话 我正在尝试使用 Web Api 2 的优点并使用 Ajax 而不是构建 RESTful API
  • 中的虚线描边

    我想不可能设置像 CSS 这样的描边属性 这很容易 对于 CSS 我们有虚线 点线 实线 但在画布上绘制线条 或笔划时 这似乎不是一个选项 您是如何实施的 我看过一些例子 但它们真的很渴望这样一个愚蠢的功能 例如 http groups g
  • 如何使正则表达式模式优先于另一个模式

    我正在使用正则表达式来提取大学名称 主要观察到两种模式 某个名字 大学 gt 例如 安娜大学 某物 大学 gt 例如 埃克塞特大学 为此 我编写了两种模式 regex re compile join r Uu niversity of w
  • Swift:如何解决“协议”类型的弱变量非法的问题

    在阅读了有关此问题的一些帖子后 我发现我的协议应该继承自 class 以便 weak 能够处理我的委托变量 weak 只能应用于类或类绑定协议类型 如果我的协议不继承自 类 那么 swift 是否会 推断 它应该是弱的 这是将 协议 类型的
  • 当 Bean Validation 抛出 ConstraintViolationException 时自定义 JAX-RS 响应

    Bean 验证是验证对象的一个 不错的选择 但是当ConstraintViolationException被抛出 例如 POST Path company Consumes application json public void save
  • 优化 Lua 的循环执行

    我每 10 毫秒的程序周期执行一次 Lua 脚本 使用相同的 Lua state luaL newstate 在我的应用程序中调用过一次 调用 luaL loadbuffer 肯定会非常快地编译脚本 但似乎没有必要在每次执行脚本时都这样做
  • 函数名称在 bash 中有效,但在 sh 中无效 [重复]

    这个问题在这里已经有答案了 在使用 bash 和 sh 时 我发现以下内容在 bash 中有效 system out println printf 1 但不是在 sh 中 sh system out println not a valid
  • 如何使用 Java 设置 DynamoDB 返回的匹配项的限制?

    在我的 Android 应用程序中 我想从 DynamoDB 查询数据 将会有一千个匹配的项目 但我只想获得其中的前 10 个 我不知道如何设置这个限制 我在文档中找到了这些行 DynamoDB 查询和扫描 API 允许使用限制值来限制结果
  • 忽略转义序列 C++

    我尝试搜索谷歌但找不到答案 谁能告诉我如何忽略存储在 string 中的转义字符 我正在使用一个包含不同字符的数组 如下所示 string str 来自编译器的错误消息 未知转义序列 位于 As Zac has already pointe
  • Inno 设置部分 [Run] 带条件

    我的病情需要帮助 Run 如果它是可能的 我需要运行取决于条件的命令 像这样 if UserPage Values 0 NC then FileName sys inetsrv appcmd exe Parameters set 或者其他方
  • 最大还是默认?

    从可能不返回行的 LINQ 查询获取最大值的最佳方法是什么 如果我只是这样做 Dim x From y In context MyTable Where y MyField value Select y MyCounter Max 当查询未
  • 使用 Python 将流写入 Google Cloud Storage

    我正在尝试迁移AWS Lambda函数写在Python到 CF 那个 即时解压缩并逐行读取 对每条线执行一些灯光变换 将未压缩的输出 一次一行或块 写入 GCS 输出 gt 2GB 但略小于 3GB 因此适合Lambda just 嗯 这似
  • Resttemplate表单/多部分:POST中的图像+ JSON

    我正在尝试调用一个rest ws 使用resttemplate 它接受图像和一些JSON 但是 我似乎无法让它运行 相关代码如下 HttpHeaders header new HttpHeaders header setContentTyp
  • Python 将轴上的日期转换为月份

    我有一个时间序列 我想逐年绘制 我希望数据是每日的 但轴将每月显示为 一月 二月 等 目前我可以获得每日数据 但轴是 1 366 一年中的某一天 或者我可以将每月轴设置为 1 2 3 等 通过将索引更改为 df index month 但数
  • 如何在 Next.js 静态站点生成中获取 URL 查询字符串?

    我想从 Next js 静态站点生成的 URL 获取查询字符串 我在 SSR 上找到了一个解决方案 但我需要一个用于 SSG 的解决方案 Thanks import useRouter from next router import use
  • C# 部署我的应用程序 - 仅从 Web 单击一次

    所以我用 C 开发了我的应用程序 我已准备好部署它 我想让用户始终从我的网站启动它 以便他们始终获得更新 无需安装等 ClickOnce 是执行此操作的正确方法吗 我尝试将 ClickOnce 部署到我的服务器上 但我发现了一些事情 1 用