Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.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
C# 一键式自动升级不同产品_C#_Deployment_Setup Deployment - Fatal编程技术网

C# 一键式自动升级不同产品

C# 一键式自动升级不同产品,c#,deployment,setup-deployment,C#,Deployment,Setup Deployment,我有四种不同的产品。它们是: Outlook附加产品 系统托盘产品 标准EXE产品 IE附加产品 这些产品是在C#NET中开发的。这些产品作为单一产品提供给客户。我想在一次点击中自动升级所有这些产品。(即所有产品必须在一次单击中升级到新版本)。升级必须是强制更新(即,在客户端获得升级之前,它不允许客户端运行产品) 有人能指导我解决这个问题吗 将您的所有代码-表单和所有-放入一个或多个DLL中 在启动时,或者在您准备接受挑战的任何时候,EXE都会根据webservice调用中的上一个UpdateI

我有四种不同的产品。它们是:

  • Outlook附加产品
  • 系统托盘产品
  • 标准EXE产品
  • IE附加产品
  • 这些产品是在C#NET中开发的。这些产品作为单一产品提供给客户。我想在一次点击中自动升级所有这些产品。(即所有产品必须在一次单击中升级到新版本)。升级必须是强制更新(即,在客户端获得升级之前,它不允许客户端运行产品)

    有人能指导我解决这个问题吗

  • 将您的所有代码-表单和所有-放入一个或多个DLL中
  • 在启动时,或者在您准备接受挑战的任何时候,EXE都会根据webservice调用中的上一个UpdateID/dll版本检查这些dll的更新
  • 如果有更新版本,请下载并覆盖旧dll
  • 使用反射动态加载和使用可更新的DLL
  • 考虑使用互斥来避免更新工作的重复。在UpdateID之后命名互斥体

  • 这可能是为了允许在飞行中更新。

    请使用

    提醒我不要购买您的产品。您在安装包中使用了什么(例如Visual Studio安装项目、ClickOnce、WIX、第三方MSI packager…)@ewall:我在使用Visual Studio安装程序project@Jonathan莱夫勒:你为什么这么说,关于这件事你是什么意思我不介意被建议升级;我不介意被允许使用我的软件,因为我没有升级。只是补充:代码不必在单独的DLL中。例如,我在
    visualstudio
    中的1
    Solution
    下有6个
    项目。当我构建我的应用程序时,所有6个
    项目都是编译的(它们还共享许多相同的类文件,以使
    项目
    的工作方式相同)。这将生成一个安装在用户PC上的可执行文件。