Publier installation ClickOnce d'erreur “Exception de la lecture du manifeste” à l'aide de VB.NET
Je suis à l'aide de Visual Studio 2010 et VB.NET. Mon environnement cible est .NET Framework 4.0.
Donc, je suis confronté à ce problème quand je suis à la publication de mon projet en utilisant le Setup.exe
fichier. Après la vérification de la condition d'application surgi, une alerte surgit avec le texte:
Ne Peut Pas Continuer. L'application n'est pas correctement formaté. Contactez le fournisseur de l'application pour obtenir une assistance.
Quand j'ai cliqué sur le bouton "Détail", il m'a montré cette erreur:
PLATFORM VERSION INFO
Windows : 6.1.7601.65536 (Win32NT)
Common Language Runtime : 4.0.30319.239
System.Deployment.dll : 4.0.30319.1 (RTMRel.030319-0100)
clr.dll : 4.0.30319.239 (RTMGDR.030319-2300)
dfdll.dll : 4.0.30319.1 (RTMRel.030319-0100)
dfshim.dll : 4.0.31106.0 (Main.031106-0000)
SOURCES
Deployment URL : file:///I:/ProjectBMTRelease/ProjectBMT.application
IDENTITIES
Deployment Identity : ProjectBMT.application, Version=1.0.0.6, Culture=neutral, PublicKeyToken=7439f62500c0364d, processorArchitecture=x86
APPLICATION SUMMARY
* Installable application.
ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of I:\ProjectBMTRelease\ProjectBMT.application resulted in exception. Following failure messages were detected:
+ Exception reading manifest from file:///I:/ProjectBMTRelease/Application%20Files/ProjectBMT_1_0_0_6/ProjectBMT.exe.manifest: the manifest may not be valid or the file could not be opened.
+ Parsing and DOM creation of the manifest resulted in error. Following parsing errors were noticed:
-HRESULT: 0x80070c81
Start line: 0
Start column: 0
Host file:
+ Exception from HRESULT: 0x80070C81
COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.
WARNINGS
There were no warnings during this operation.
OPERATION PROGRESS STATUS
* [6/23/2012 5:21:36 PM] : Activation of I:\ProjectBMTRelease\ProjectBMT.application has started.
* [6/23/2012 5:21:36 PM] : Processing of deployment manifest has successfully completed.
* [6/23/2012 5:21:36 PM] : Installation of the application has started.
ERROR DETAILS
Following errors were detected during this operation.
* [6/23/2012 5:21:36 PM] System.Deployment.Application.InvalidDeploymentException (ManifestParse)
- Exception reading manifest from file:///I:/ProjectBMTRelease/Application%20Files/ProjectBMT_1_0_0_6/ProjectBMT.exe.manifest: the manifest may not be valid or the file could not be opened.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
--- Inner Exception ---
System.Deployment.Application.InvalidDeploymentException (ManifestParse)
- Parsing and DOM creation of the manifest resulted in error. Following parsing errors were noticed:
-HRESULT: 0x80070c81
Start line: 0
Start column: 0
Host file:
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.Manifest.AssemblyManifest.LoadCMSFromStream(Stream stream)
at System.Deployment.Application.Manifest.AssemblyManifest..ctor(FileStream fileStream)
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
--- Inner Exception ---
System.Runtime.InteropServices.COMException
- Exception from HRESULT: 0x80070C81
- Source: System.Deployment
- Stack trace:
at System.Deployment.Internal.Isolation.IsolationInterop.CreateCMSFromXml(Byte[] buffer, UInt32 bufferSize, IManifestParseErrorCallback Callback, Guid& riid)
at System.Deployment.Application.Manifest.AssemblyManifest.LoadCMSFromStream(Stream stream)
COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.
J'ai vérifié mon projet le fichier de manifeste, mais je ne suis pas assez bon pour trouver n'importe quel problème. Pour d'autres informations, j'ai créé simple "Hello World !" application pour voir si elle va être publié, et il l'a fait.
Quelle est la solution?
OriginalL'auteur Samuel Adam | 2012-06-23
Vous devez vous connecter pour publier un commentaire.
Vérifiez les points suivants:
L'utilisateur .NET 4 installé sur leur ordinateur?
Comment faites-vous la publication de la demande, êtes-vous à l'aide de Visual Studio?
Êtes-vous d'apporter des modifications pour le déploiement après la publication?
Si vous êtes à déplacer manuellement les fichiers à l'emplacement de déploiement, est la structure identique à la structure d'origine?
Essayez d'activer la journalisation détaillée et voir si cela fournit plus d'informations. L'
article Enregistrement amélioré dans le Déploiement ClickOnce vous montre comment le faire.
Êtes-vous sûr d'définir le chemin d'accès pour les fichiers journaux vers un chemin d'accès de l'utilisateur peut écrire à l'? Assurez-vous de le mettre dans mesdocuments ou quelque chose comme ça, pas dans c:\somefolder.
En fait ce fichier journal est ouvert pour vous lorsque vous cliquez sur le bouton pour fournir plus d'info quand un problème survient au moment de l'installation. Je ne savais pas que cette info a été la même chose.
OriginalL'auteur RobinDotNet
J'ai eu cette même erreur. Le problème a été résolu après j'ai renommé mon nom d'assembly trouvé sur le premier onglet des propriétés de l'application. Il semble comme avoir un nom d'assembly avec un espace crée un manifeste nom de fichier avec un espace vide et elle semble créer des problèmes. Ma demande nom de l'assembly a été nommée "Capitale Gestionnaire". Après je l'ai changé pour "Capital_Manager" (j'ai remplacé l'espace avec un score de "_") la question ai résolu.
OriginalL'auteur user2230431
J'ai reçu un rapport d'erreur et la pile des appels à peu près identiques à la vôtre lorsque vous tentez d'exécuter le programme d'installation ClickOnce. Mes résultats jusqu'à présent peut être utile à d'autres personnes arriver ici, donc je vais poster les détails, mais j'ai le sentiment que ce même rapport d'erreur peut être provoquée par une gamme de différents problèmes.
La première chose que j'ai remarqué est que mon manifeste d'application (celui qui liste tous les fichiers de l'application + une signature de hachage pour chaque) ont des entrées pour les assemblys qui avait une défaillance de publicKeyToken, par exemple,
Plus bas dans le fichier au lieu de voir dependentAssembly éléments pour les assemblées certaines assemblées ont été répertoriés comme de simples fichiers de contenu (fichier éléments).
Ces problèmes certainement faire le déploiement ClickOnce invalide, et la cause est à l'aide d'une version de Mage qui a été compilé avec une version plus ancienne de .NET que les assemblées qu'il était en train de créer de manifeste pour. Lors de la création du manifeste de l'application Mage tente de lire assemblées comme suit:
Et pour le Mage compilé contre .NET 3.5 (CLR 2.0) essaie de charger un .NET 4.0 résultats de montage dans une BadImageFormatException exception qui est manipulé, et le repli de comportement est de traiter ces fichiers en tant que fichiers de contenu.
OriginalL'auteur redcalx
Votre dossier d'application ont des sous-dossiers? J'ai eu ce même HRESULT juste hier, et qui est la cause était qu'une bibliothèque (EntityFramework.dll) a été à la fois le haut niveau et dans un sous-dossier. (Il y avait un MAGE d'avertissement à ce sujet, mais il n'a pas été traitée comme une erreur.) J'ai mis à jour mon script pour supprimer EntityFramework.dll du sous-dossier, et le ClickOnce est bien maintenant.
OriginalL'auteur agileteams