应用程序部署到网络驱动器

2024-03-18

我有一个.NET 4 WPF需要在公司网络内运行的应用程序。
该应用程序不使用本地文件(它确实有一个app.config文件,但它只包含一些connection strings)用于数据存储,但中央SQL server数据库。 将应用程序文件放在共享网络驱动器上并仅为每个用户创建应用程序可执行文件的快捷方式有哪些缺点?
我在以下链接中找到了有关该主题的一些数据,但我无法得到明确的答案:
从映射驱动器或共享文件夹运行 .NET 程序 - 优点/缺点 https://stackoverflow.com/questions/439515/run-a-net-program-from-a-mapped-drive-or-shared-folder-pros-cons
从映射驱动器或共享文件夹运行 .NET 程序 https://stackoverflow.com/questions/359978/run-a-net-program-from-a-mapped-drive-or-shared-folder
http://support.microsoft.com/kb/832742 http://support.microsoft.com/kb/832742
如果知道使用这种方法时东西是如何工作的,应用程序文件是否被复制到本地用户或发生其他情况,那就太好了?


我已经使用我们内部运行的应用程序完成了此操作。

根据设置,.NET 可能会简单地拒绝从网络驱动器加载或执行程序集,因为该可执行文件可能存在安全风险。因此,当您的程序尝试使用 DLL 时,它可能无法运行或可能引发异常。

仅仅拥有网络上可执行文件的快捷方式的另一个缺点是当您部署更新时。这些文件很可能会被锁定,您要么必须去每台计算机并确保软件已关闭,要么删除服务器上的用户锁定,这可能会很痛苦。第一次部署后,我很快就发现了程序中的一个错误,并且立即发现了这个问题。躲开它。

我在网络上的一个众所周知的位置(可配置)拥有运行该程序所需的所有文件。当新用户需要该应用程序时,我只需将所有内容复制到他们计算机上的某个位置,并在桌面(或开始菜单,可能是启动文件夹)上创建一个快捷方式供他们使用。然后,程序会不时自动查看该目录中的一些元数据(版本信息),如果较新,则会自动更新。

除了应用程序可执行文件之外,这还需要单独的可执行文件进行更新,以避免执行卷影复制和重新启动。我的应用程序中发生了以下基本事情:

  1. 该应用程序确定网络驱动器上是否有更新版本。
  2. 如果是这样,它会更新更新程序可执行文件,然后使用应用程序的进程 ID 作为命令行参数启动更新程序,然后自行终止。
  3. 更新程序会等待传递给它的进程死亡后再继续(因此应用程序可执行文件不会被锁定)。
  4. 更新程序更新应用程序文件。
  5. 然后更新程序重新启动该应用程序。

我还没有遇到这个计划的任何问题。

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

应用程序部署到网络驱动器 的相关文章

随机推荐

  • url 中的空手道框架符号编码

    我有这个 Background url http localhost 15672 api exchanges 2F my exchange Scenario Given path publish 这里的问题是 url 被解析为 http l
  • HikariCP:为 Oracle 11g 设置 maxLifetime 时应考虑哪些数据库级别超时

    在 HikariCP 的文档中提到 我们强烈建议设置此值 并且它应该比任何数据库级连接超时至少少 30 秒 Oracle 11g 2 数据库应考虑哪些数据库级连接超时 我怎样才能找到这些超时 要执行的查询 简短回答 无 默认情况下 作为记录
  • 如何在 C++ 中从指向向量的指针访问向量的内容?

    我有一个指向向量的指针 现在 如何通过指针读取向量的内容 解决方案有很多 我总结了一些 int main int nArgs char vArgs vector
  • Chrome 扩展 API webRequest 不能很好地响应

    所以我正在尝试 Chrome API webRequest 根据要求 一切正常 但在响应时 我遇到了问题 我的测试非常简单 function func obj var resHeaders obj responseHeaders for v
  • 如何删除 MongoDB 中的此弃用警告以及为什么会发生这种情况?

    我只是想创建一个 API 并在 app js 文件中连接到它 但每次运行 app js 时都会收到此弃用警告 我已经检查了 mongoose 和 MongoDB 中的所有弃用警告 但我找不到任何与我的相匹配的警告 我收到的警告是 node
  • 将对象列表中的对象项替换为另一个项

    我的变量中有一个项目对象this rows 有一个来自服务器的实时项目与里面的项目相同this rows对象集合 如何用新值替换项目 这是一个例子 let rows id 11 active no id 22 active yes id 3
  • FirebaseCrashlytics:设置请求失败

    我几乎完成了 Android 应用程序的构建 但我想添加 Firebase Crashlytics 我总是添加这个并且安装它从来没有遇到过问题 但现在不同了 我收到以下错误 2021 05 24 20 41 42 807 11296 113
  • Ubuntu 16.10 x64 上的 Laravel 5.3 的 Cron 作业

    我正在运行 Digital Ocean 的 Ubuntu 16 10 x64 并在服务器上部署了 php Framework Laravel 5 3 28 在大多数情况下 一切都正常工作 但是我试图让 crontab 调用 artisan
  • Hudson 经验 - 构建矩阵项目

    有人尝试过该功能并有一些反馈吗 或者有人知道一些有用的示例来查找吗 几个月前我尝试过这个功能 但我不再使用它 只是因为我不需要它 而不是因为它不是一个好功能 基本上 您定义 n 个轴 每个轴都是一个具有多个值的属性 让我们举个例子 您定义了
  • 是否可以使用 AJAX 将图像文件上传到 Domino 服务器?

    是否可以使用 AJAX 将图像文件上传到 Domino 服务器 我正在尝试从 Android 手机上传照片 我可以将图像数据发送回 Domino 中的富文本字段 但我不知道如何将其渲染为多米诺表单上的图像 理想情况下 我想通过 ajax 发
  • 公共记录类型的构造函数?

    假设我想要一个记录类型 例如 type CounterValues Values int list IsCorrupt bool 问题是 我想创建一个构造函数 将传递的整数列表转换为一个没有负值的新列表 它们将被 0 替换 并且仅当在构造时
  • 无法将 NULL 值插入 AspNetUsers 表“Discriminator”列

    代码首次迁移后 使用寄存器添加用户失败 并显示 无法将 NULL 值插入表 aspnet BSF2013 20130918101120 dbo AspNetUsers 列 Discriminator 列不允许为空 创建用户代码是项目模板生成
  • 如何在计时器到期时关闭 InfoBox.Popup?

    我在 Outlook 2013 中从其他帖子中拼凑出了这个测试过程 它应该显示一个弹出框 然后在 3 秒后关闭 它永远不会关闭 Sub MessageBoxTimer Dim AckTime As Integer InfoBox As Ob
  • JLabel 超链接可在正确的 URL 处打开浏览器

    我需要使用 Java Swing 创建一个可单击的标签 并且能够打开桌面上的默认浏览器并将其重定向到特定的 url 我的代码能够打开浏览器 但无法将其重定向到正确的网址 加载默认主页 我的测试代码 import java awt impor
  • Node.js 用户名和密码认证

    我目前正在使用构建一个网络应用程序Node js and Express js 我正在寻找一种方法 在我的主目录中使用用户名和密码进行简单的服务器端身份验证app js正在监听的文件post请求于http www domain com lo
  • 如何在 Android 选择器中定义粗体?

    在我的 Android 应用程序中 我有几个单选按钮 它们应该具有不同的颜色并在选择时变为粗体 我设法通过定义来获得不同的颜色radio pick color xml可绘制文件
  • iOS 强密码自动填充未显示在确认密码上

    iOS 会自动填充第一个密码字段 但不会填充第二个密码字段 如何像应用程序中那样自动填充密码和确认密码字段 更新 系统似乎将注册表单视为登录表单 因此它会自动填充第一个密码字段 另外 当我导航回登录屏幕时 系统提示我是否要将密码保存在钥匙串
  • 如何在IDEA中打开项目时停止自动刷新SBT模块?

    我们有多个 Play 2 应用程序和模块 但我在将 IntelliJ IDEA 13 集成到我的开发流程中时遇到了问题 我有一个基于应用程序的公共父级的空项目 并且我已使用导入现有 SBT 项目选项将每个应用程序作为模块导入 我的问题是 每
  • Plotly for R:当数据集包含大于 1000 的数字时,删除 y 轴上出现的 k

    您好 关于plotly的一个 简单 问题 我想删除当数据集包含大于10000的数字时似乎自动出现在y轴上的k 我尝试将数据上传到plotly在线并将 k 放入以及 例如使用数据的子集 date lt c 1 07 1987 2 07 198
  • 应用程序部署到网络驱动器

    我有一个 NET 4 WPF需要在公司网络内运行的应用程序 该应用程序不使用本地文件 它确实有一个app config文件 但它只包含一些connection strings 用于数据存储 但中央SQL server数据库 将应用程序文件放