ClickOnce Manifest has invalid children - but xml matches old published manifests

本秂侑毒 提交于 2020-01-02 07:03:41

问题


I have an error during installing updating or fresh installing my ClickOnce publish on my app.

This occurs on computers without the app installed and on those with the app already there. The pfx file I use for signing the project is the same as it was in previous versions so I don't think the certificate is the issue.

+ Exception reading manifest from <APPPATH>.exe.manifest: the manifest may not be valid or the file could not be opened.
+ The element 'assembly' in namespace 'urn:schemas-microsoft-com:asm.v1' has invalid child element 'SignedInfo' in namespace 'http://www.w3.org/2000/09/xmldsig#'. 
List of possible elements expected: 'dependency' in namespace 'urn:schemas-microsoft-com:asm.v1' 
as well as 'dependency' in namespace 'urn:schemas-microsoft-com:asm.v2' 
as well as 'file' in namespace 'urn:schemas-microsoft-com:asm.v1' 
as well as 'file, configuration, deployment, entryPoint, trustInfo, licensing, migration' in namespace 'urn:schemas-microsoft-com:asm.v2' 
as well as 'clrClass' in namespace 'urn:schemas-microsoft-com:asm.v1' 
as well as 'clrClass' in namespace 'urn:schemas-microsoft-com:asm.v2' 
as well as 'clrSurrogate' in namespace 'urn:schemas-microsoft-com:asm.v1' 
as well as 'clrSurrogate' in namespace 'urn:schemas-microsoft-com:asm.v2' 
as well as 'comInterfaceExternalProxyStub' in namespace 'urn:schemas-microsoft-com:asm.v1' 
as well as 'comInterfaceExternalProxyStub, KeyInfo' in namespace 'urn:schemas-microsoft-com:asm.v2' 
as well as 'Signature' in namespace 'http://www.w3.org/2000/09/xmldsig#' 
as well as any element in namespace 'urn:schemas-microsoft-com:asm.v3' 
as well as 'publisherIdentity' in namespace 'urn:schemas-micr....

There are no out of place xml elements or attributes as comparing it with an old publish that works shows no difference in the elements.

Any suggestions?


回答1:


I had the same problem, it was caused by a section in the explicitly embedded app.manifest:

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
  <!-- A list of the Windows versions that this application has been tested on and is
       is designed to work with. Uncomment the appropriate elements and Windows will 
       automatically selected the most compatible environment. -->
  <!-- Windows Vista -->
  <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />
  <!-- Windows 7 -->
  <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />
  <!-- Windows 8 -->
  <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />
  <!-- Windows 8.1 -->
  <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />
  <!-- Windows 10 -->
  <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>

Removing this section (it was unneeded) made the click-once application work.




回答2:


clickonce has it's own headaches. especially if you make any changes to the manifest. What has proven to me to be the best workflow, when making changes to the manifest, turn of VS then start it, clean the project, build, restart VS, clean rebuild. After publishing the new clickonce package, do NOT change anything in the folder. DO NOT add, delete or update anything. as soon as you change anything inside the folder, IT WILL STOP WORKING.



来源:https://stackoverflow.com/questions/27106385/clickonce-manifest-has-invalid-children-but-xml-matches-old-published-manifest

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