查找正在运行的Clickonce部署的单实例应用程序吗?

时间:2020-03-06 15:03:55  来源:igfitidea点击:

我目前在我的单实例clickonce部署应用程序上遇到问题,也许有人对此有个好主意。

Web应用程序调用了我的应用程序,该应用程序将参数传递给此exe。现在的问题是,如果应用程序已经在运行,则需要很长时间才能启动新实例,将参数移交给正在运行的实例,然后关闭(通过打开URL,检查更新等)。 )。

那么,有没有办法在不引入新的小型应用程序的情况下检测到正在运行的实例,该检测方法是哪一个呢?

目的是减少时间,第二,第三,...调用需要时间来获取运行实例的参数。

解决方案

在设置部署设置时,我们可以告诉VS只让应用程序每x时间(一天,一周等)更新一次。我们还可以告诉它启动应用程序并在后台更新。我认为,这两种方法都可以自行解决问题。

这些设置位于"项目"设置的"发布"选项卡上。单击"安装模式和设置"部分中的"更新"按钮,然后设置适当的设置。

我想我不清楚要实现的目标。

我想做的是,如果有一个实例在运行,则直接访问该实例,而无需启动clickonce url。我正在寻找一种解决方案,无需编写一个小程序(也必须部署该程序,...),该程序可以检查应用程序是否正在运行,是否可以运行参数,是否可以启动应用程序。 clickonce网址。

后台更新并不是真正的选择,因为此"连接到应用程序"屏幕仍然存在并且会耗费时间,并且必须确保每个用户每次都运行最新版本的应用程序。

这似乎是Click-Once技术的有趣用法。
我印象中,Click-Once是将客户端应用程序分发到企业内多个最终用户计算机的理想选择。

在这里描述的情况下,这是一个Web服务器应用程序使用的后台应用程序,我希望它仅安装在企业中的少数服务器上。

我的问题是:

  • 如果Web应用程序可以检测到它,Web应用程序将如何将参数传递给正在运行的实例? (例如,.NET远程处理?)
  • 通过Click-Once(与Windows Installer相对)分发此后台应用程序的原因是什么?

知道这一点可能有助于解决问题。

不,它不是后台应用程序。 Web应用程序和Winforms应用程序正在使用数据库的类似子集。我试着不去赘述,因为这个问题并不重要,但要更清楚:用户使用Web应用程序为我们的业务案例创建元数据,而用户使用Winforms应用程序来创建元数据。他们的具体工作。

因此,通过此链接,可以创建一组新的元数据,并在" working-app"中对结果进行交叉检查。

因此,有2种具体情况:

  • Winforms-App不在客户端上运行:当用户单击一次单击开始菜单项或者Web应用程序中的链接时,应按现在的方式进行所有操作(使用更新检查,.....)。 )。因此,这种情况对我有用。
  • Winforms-App在客户端上运行:正在运行的实例应尽快显示新的元数据集,而无需单击任何一次更新检查或者进行任何其他操作。我试图绕过这种情况,即弹出"单击一次启动的应用程序"对话框,新的应用程序实例正在启动,新实例将参数传递给正在运行的实例并自行关闭。因此,我在寻找解决方案的情况下实现了该解决方案,而没有创建一个新的小型exe文件(该应用程序可以正常工作),而该应用程序是Web应用程序所熟知的。