Manifest may not be valid or the file could not be opened.

拥有回忆 提交于 2019-11-29 07:38:28
Zoey

I was able to solve my issue by removing the signing of the manifest.
If you right-click your project and go to properties then to the Signing Tab; uncheck the Sign the ClickOnce manifests and Sign the assembly.
I'm not sure what this does in terms of security but my app installed after I removed these options.

I had the same issue and it was just the machine didn't have the appropriate .Net version.

I found the reason. It was MIME type issue in server setting.

So, please add .htaccess file in FTP root directory.

And write this in it.

AddType application/microsoftpatch .msp
AddType application/microsoftupdate .msu 

AddType application/x-ms-application .application  
AddType application/x-ms-application .manifest  
AddType application/octet stream .deploy   

AddType application/x-ms-vsto .vsto

It works perfectly for me.

I have seen a similar issue before where a particular WIndows OS could not 'understand' or validate the results of a certificate hash due to missing crypto providers, in my particular case it was related to using a X509 certificate generated using a v3 template for the clickonce signing.

SignatureDescription could not be created for the signature algorithm supplied

The highlighted part of the message combined with the successful installation on several machines before failing on the WinXP machine would indicate that you are also running into a similar problem - WinXP doesn't know about the crypto algorithmn specified in the certificate that you've used to sign the clickonce.

I don't know of a good solution to this, normal advice you will find on the internet is to use a v2 template to generate the X509 instead of a v3 template, but this is not necessarily a good solution and is beyond the capabilities of most organisations (espcecially as most people use a bought certificate rather than certs generated from their own Certificate Authority).

Do you have SP-3 installed on the windows XP machine, and all of the available Windows Updates? Microsoft pushes out updates to the code around certificates, and the trusted publishers and other related info periodically.

It's because your developer machine had .NET 4.5 installed, while your client machines only had .NET 4.0 installed. The .NET 4.0 client machines can't read the manifest, as they expect SHA-1, while the .NET 4.5 developer machines can.

I had the same issue for a WinForms app that was built with Visual Studio 2012 and deployed on an XP machine with all the critical updates (SP3 installed and Windows Installer 4.5). I too had to change my application to be unsigned by going to the [Signing] tab on the Properties page of my project. I unchecked both: [Sign the Click One manifests] and [Sign the assembly]. The same application installed fine on Windows 7 machines with the signing enabled.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!