ClickOnce应用程序部署和.NET COM可见dll注册

时间:2013-09-03 16:27:57

标签: .net clickonce comvisible

我有一个clickonce应用程序。我需要为该应用程序注册COM visible dll。我在该应用程序的代码中使用了注册来检查它是否已经注册并通过RegistrationServices类方法RegisterAssembly()进行注册。如果由管理员启动它,它工作正常。但我不能要求管理员权限来部署clickonce应用程序。我尝试注册的第二种方式是我需要管理员并将注册我的dll的clickonce的先决条件。我为我的先决条件应用程序创建了产品清单,但在clickonce部署期间出现了错误

  

"安装程序检测到文件' ...'自最初发布以来可能已发生变化,或者可能已损坏。"

我发现这是.NET 4.5的问题,我应该签署我的先决条件。我签了它并再次通过Bootstrapper生成了清单。之后,我在部署期间遇到以下错误:

  

"文件不受信任错误:安装程序检测到无法验证文件的发布者"

在成功部署clickonce之前,我必须首先在目标计算机上安装证书。但是,在所有目标计算机上安装clickonce之前,无法安装证书。有没有人有任何想法如何解决这个问题?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我和微软的ClickOnce人谈过你的问题。您使用的是VS2010还是VS2012?他说,有时在使用VS2010时会出现错误。

如果您使用VS2010并且在该计算机上安装了.NET 4.5,则VS使用.NET 4.5中的构建任务,并在自定义引导程序包上使用SHA256哈希来创建该安装程序包。但是然后setup.exe将下载引导程序并尝试进行SHAH1比较,这与SHAH2比较不匹配。

解决方法是,如果您使用VS2012更新2构建和部署它,它应该可以工作。

如果您使用适当的CA证书进行签名,它也应该有效。在这种情况下,他们不进行哈希验证,他们只是用证书验证它。

如果你想继续使用VS2010,你可以从VS2012更新2中获取setup.bin,将它放在vs2010文件夹中,然后就可以了。它位于windows SDK文件夹中。