Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Deployment 远程应用程序部署_Deployment_Remote Desktop_Terminal Services - Fatal编程技术网

Deployment 远程应用程序部署

Deployment 远程应用程序部署,deployment,remote-desktop,terminal-services,Deployment,Remote Desktop,Terminal Services,我们有一个c#、.NET4.0、windows应用程序,我们将其部署到终端服务器上。(使用VS 2010开发)。此应用程序使用位于另一台服务器上的多个WCF服务 我们的用户通过远程桌面会话访问前端。(他们的桌面上都有一个.RDP文件。) 我的问题是关于这个前端的部署。目前,如果我们需要在工作时间内进行紧急部署,我们需要将所有连接到应用程序的用户赶走(因为他们正在使用我们需要替换的dll)。显然,这并不理想。我们在相当关键的业务环境中工作,因此这些部署是不可避免的。我已经调查了ClickOnce,

我们有一个c#、.NET4.0、windows应用程序,我们将其部署到终端服务器上。(使用VS 2010开发)。此应用程序使用位于另一台服务器上的多个WCF服务

我们的用户通过远程桌面会话访问前端。(他们的桌面上都有一个.RDP文件。)

我的问题是关于这个前端的部署。目前,如果我们需要在工作时间内进行紧急部署,我们需要将所有连接到应用程序的用户赶走(因为他们正在使用我们需要替换的dll)。显然,这并不理想。我们在相当关键的业务环境中工作,因此这些部署是不可避免的。我已经调查了ClickOnce,但已经了解到您不能将其用于终端服务应用程序。(这有什么意义,因为它本质上是一个应用程序被多个客户端“访问”…)

我希望能够进行“静默”部署,用户在重新启动应用程序实例之前对修复程序一无所知。我甚至不确定这是否可能


我将感谢任何关于这方面的指导或建议

是的,我一直在用RD应用程序做这件事——你只需要移动或重命名DLL,而不是删除它们。Windows允许在DLL正在使用时移动和重命名,但阻止您删除它们。如果使用Windows Installer部署应用程序,它将自动执行移动操作(并在下次重新启动系统时删除旧版本)


以这种方式替换DLL后,现有会话将继续使用旧的重命名版本,新会话将使用新版本。当然,取决于你有多少DLL,你的应用程序加载到内存中的时间,以及你的服务器上有多少活动,你可以遇到一个场景,当你在更新它们的时候,这个应用程序加载了一些旧的DLL和一些新的DLL,但这很可能是罕见的。

丹,你是我的英雄!!非常感谢-这就像一场梦。谢谢你给出了如此清晰简洁的答案。这很有趣,我知道你可以用可执行文件来“重命名”方法,但不知道它也可以用DLL。