相关疑难解决方法(0)

客户端计算机上的"清单XML签名无效",但在开发人员计算机上运行正常

在工作中,我们有一个ClickOnce应用程序,当客户端尝试安装时,它会抛出异常:

  • 从文件中读取异常:/ FILEPATH:清单可能无效或无法打开文件.

    清单XML签名无效.

    无法为提供的签名算法创建SignatureDescription.

为了解决这个问题,我们最终使用了另一个证书文件,并且工作正常(重新签署了清单).

但是我们无法理解为什么在开发人员机器中安装应用程序(甚至是不使用该应用程序的开发人员)会起作用,但它不适用于客户端的机器?

我们没有太多关于如何创建证书或ClickOnce包的信息,因为执行该证书的人已经离开并且没有留下关于它的文档.

正在使用的证书没有密码,普通用户没有管理员权限.

从Stack Overflow问题Manifest XML签名无效,我猜测问题可能是他们使用.NET Framework 4.5 创建项目和证书,然后当他们将应用程序设置为使用.NET Framework 4.0运行时,他们没有更改签名算法.但后来我认为它不应该对开发人员起作用.

您可以给我的任何见解将不胜感激.

clickonce

24
推荐指数
2
解决办法
2万
查看次数

如何移动ClickOnce部署包

我在网络驱动器上的发布文件夹中有一组ClickOnce软件包,需要将它们全部移动到另一台服务器(我们的DR机器).

复制/粘贴整个目录并在新机器上运行安装程序后,我收到一条错误消息,指出它无法找到旧路径:

激活... MyClickOnceApp.application导致异常.检测到以下失败消息:

+正在下载文件://oldMachine/c$/MyClickOnceApp.application未成功.

+无法找到路径'\\ oldMachine\c $\MyClickOnceApp.application'的一部分.

一旦我将安装URL更改为指向我的新机器,我就会收到另一个错误:

清单XML签名无效.

+对象的数字签名未验证.

我已经尝试使用MageUI.exe来修改部署URL,但它要求提供我没有的证书.

我做错了什么以及如何成功移动已发布的ClickOnce软件包?

c# clickonce manifest

11
推荐指数
2
解决办法
2万
查看次数

如何使用Sha256 Cert for .NET 4.0签署ClickOnce,如Visual Studio Update 3

我正在尝试使用clickonce安装程序部署Outlook加载项.我有一个几乎可以工作的批处理文件,但是,当我尝试在Windows XP上安装时,我收到错误"xml signature无效".众所周知,XP以SHA256证书为例失败.众所周知,Visual Studio 2013的Update 3修复了使用Visual Studio界面发布时的问题.我想知道如何在命令行上使用signtool或mage完成相同的修复.这是我当前的批处理文件,适用于除Windows XP之外的所有内容:

:: Build and publish
msbuild /target:clean,publish /property:MapFileExtensions=false /property:Configuration="Release" /property:ApplicationVersion="1.0.0.0" /property:InstallUrl="https://example.com" /property:UpdateEnabled="true" /property:UpdateMode="Foreground" /property:UpdateInterval="0" /property:UpdateIntervalUnits="days" /property:PublisherName="Example" /property:ProductName="Example Outlook Add-In" /property:FriendlyName="Example Outlook Add-In" /property:LoadBehavior="3" /property:BootstrapperEnabled="true" /property:IsWebBootstrapper="true"

:: Sign the exe
signtool sign /fd SHA1 /f "certificate.pfx" "publish\setup.exe"

:: Sign the application manifest
mage -sign "publish\Application Files\Example_1_0_0_0\Example.dll.manifest" -CertFile "certificate.pfx"
mage -update "publish\Application Files\Example_1_0_0_0\Example.dll.manifest" -CertFile "certificate.pfx" -algorithm sha1RSA

:: Sign the deployment manifests (there are 2 locations)
mage -update "publish\Application Files\Example_1_0_0_0\Example.vsto" -appmanifest "publish\Application Files\Example_1_0_0_0\Example.dll.manifest" …
Run Code Online (Sandbox Code Playgroud)

command-line batch-file mage visual-studio-2013

10
推荐指数
1
解决办法
3643
查看次数

我是否必须签署ClickOnce清单?

我有一个VS2012解决方案(WinForm vb.net),我通过ClickOnce部署了它.我今天做了一些测试来部署这个应用程序.我可以发布和部署此应用程序,而无需签署ClickOnce清单或签署程序集.在我的项目的签名选项卡上,我取消选中"签署ClickOnce清单"和"签署程序集".安装此应用程序时,我没有任何错误(关于程序集未签名).

我将发布的文件夹复制到USB密钥上,并将其安装在另一台计算机上没有问题.我也可以更新我的应用程序并自动安装这些更新(感谢ClickOnce).

我阅读了很多关于ClickOnce和签名的内容,似乎我没有签署WinForm应用程序.

有人可以证实吗?我想知道如果我可以随时安装它而没有问题我是否将我的ClickOnce文件夹复制到网络公司的共享上?

明天我将有机会尝试安装在公司的网络上(而不是今天).

谢谢你的帮助.

clickonce signing visual-studio

7
推荐指数
1
解决办法
9076
查看次数

VS2012 .NET 4.0 Clickonce VSTO CryptographicException:无法为提供的签名算法创建SignatureDescription

我有一个VS2010 .NET 4.0 VSTO Outlook Addin项目,我希望迁移到VS2012(但保留在.NET 4.0中).它编译得很好,并且从IDE内部运行就好了,但是当我尝试运行已发布的ClickOnce安装程序时,我得到以下异常:

System.Deployment.Application.InvalidDeploymentException:从file://MyPath/MyAddIn.vsto读取清单的异常:清单可能无效或无法打开文件.---> System.Deployment.Application.InvalidDeploymentException:Manifest XML签名无效.---> System.Security.Cryptography.CryptographicException:无法为提供的签名算法创建SignatureDescription.

基于我的测试和在线研究(在这里那里),似乎只在我的机器上安装了VS2012(无论是从VS2010还是VS2012发布),强制ClickOnce安装程序在使用.NET 4.0时需要 SHA1证书.使用VS2010(安装VS2012)编译时,我现有的SHA256证书与.NET 4.0完全兼容.

  • 我无法将客户端升级到.NET 4.5,因为这是一个VSTO40项目(在XP/Office 2007上运行).
  • 我无法在本地计算机上卸载VS2012/.NET 4.5,因为我还有其他需要它的项目.
  • 我无法轻易地将我的证书从SHA256降级为SHA1.

还有其他建议让我继续前进吗?

.net clickonce visual-studio-2010 c#-4.0 visual-studio-2012

6
推荐指数
2
解决办法
1万
查看次数