只需点击一次应用程序即可关闭dll?

时间:2011-05-05 13:06:39

标签: clickonce dll

我有一个点击一次的应用程序,由于某些原因,我无法重新发布新版本。与此同时,我有一个dll将取代应用程序中的一个现有dll。是否可以直接进入Application Files文件夹并将其切换出来?点击中的dll似乎采用不同的格式,[file] .dll.deploy。我可以以某种方式将我拥有的dll转换为此格式并让它替换现有的吗?

2 个答案:

答案 0 :(得分:2)

不,你不能只换出dll。 ClickOnce为正在部署的每个文件生成哈希。即使新文件具有相同的名称,它也不会包含在清单中的相同哈希值,也不会起作用。

我会在MageUI打开您的清单并尝试以这种方式更新。

如果不增加版本号,除非他们卸载/重新安装,否则没有人会获得新文件。是否有一个特殊原因你不能重新发布?

答案 1 :(得分:1)

我已经与它斗争了几天,它可以完成,但它很繁琐,使用此解决方案ClickOnce仍会扫描所有文件并显示进度条,但只下载并更新更改。

以下是我编写的应用此修补方法的过程...

请注意,此过程需要使用要升级的Click once部署的精确副本进行。

在Application Files文件夹中......

  1. 使用mageui打开.exe.manifest(假设VS2010版本为3.5或更高版本)
  2. 更改版本号

  3. 替换已修补的文件注意:文件使用文件名重命名.deploy例如。 Control.DLL成为control.DLL.Deploy

  4. Sign&用PFX文件保存文件
  5. 在根路径中

    1. 使用mageui(3.5或更高版本)
    2. 打开.application文件
    3. 更改版本号
    4. 更改所需的最低版本号
    5. 选择上面修改的exe.manifest
    6. Sign&保存文件
    7. 将.application复制到Application Files文件夹* 注意:此步骤并非严格必要,只是保持备份文件的相关性。

      现在可以将清单文件和已修补的库复制到您的部署环境中。