title: "Manifest XML signature is not valid" on client machine but works fine on developer computer
body: <p>At work we had a ClickOnce application that, when the client would try to install, was throwing the exception:</p>
  
  <blockquote>
    <ul>
    <li><p>Exception reading manifest from file:/FILEPATH: the manifest may not be valid or the file could not be opened.</p>
    
    <p>Manifest XML signature is not valid.</p>
    
    <p>SignatureDescription could not be created for the signature algorithm supplied.</p></li>
    </ul>
  </blockquote>
  
  <p>To solve this, we ended up using another certificate file, and it worked fine (resigned the manifest).</p>
  
  <p>But we can not understand why it would work to install the application in the developers machines (even developers that were not working with the application), but it would not work for the clients' machines?</p>
  
  <p>We don't have much information on how the certificates were created or the ClickOnce package, because the person that did it is gone and didn't leave documentation about it.</p>
  
  <p>The certificate that was being used didn't have a password and normal users do not have administrator rights.</p>
  
  <p>From Stack Overflow question <em><a href="https://stackoverflow.com/questions/12826798/manifest-xml-signature-is-not-valid">Manifest XML signature is not valid</a></em>, I could guess that the problem maybe was that they created the project and certificate with <a href="http://en.wikipedia.org/wiki/.NET_Framework" rel="nofollow noreferrer">.NET</a> Framework 4.5 and then when they set the application to run with .NET Framework 4.0, they didn't change the signature algorithm. But then I would asume it shouldn't work for the developers either.</p>
  
  <p>Any insight you could give me would be greatly appreciated.</p>