Discussion:
Manifeste d'application : hésitation sur source
(trop ancien pour répondre)
Gloops
2006-11-02 10:08:40 UTC
Permalink
Bonjour tout le monde,

J'ai téléchargé il y a quelques jours le kit Microsoft XML à l'adresse
http://download.microsoft.com/download/c/7/5/c75d4b79-35ad-4ae1-acbe-9ba7aa44d1c2/xmlsdk.msi

Je suis en train de faire mes premiers pas avec, et ce à l'aide de VB6
sur une machine avec Windows XP. A la rubrique GUID and ProgID
Information / Dependencies in MSXML / MSXML and Windows / Creating a
manifest for your application, je vois qu'il m'est conseillé au point 4
de conformer mon manifeste d'application aux informations incluses dans
le manifeste d'assemblage de MSXML, d'extension msxml4.manifest, que je
m'attends à trouver dans le répertoire C:\Windows\WinSxS\Manifests, or
je ne trouve aucun fichier avec cette extension non seulement dans ce
répertoire, mais sur tout mon disque.

N'ayant pu construire un manifeste d'application qui se tienne, je
suppose qu'il est normal que je me ramasse une erreur 429 en lançant
l'application de test (après l'avoir un peu complétée pour qu'elle fasse
un petit peu quelque chose, voir ci-dessous.

Quelqu'un voit-il ce que j'ai mal lu ?

*

Par ailleurs, peut-être vais-je comprendre mieux en y passant un peu
plus de temps, mais les instructions de création de l'application de
test proposent de créer un bouton avec juste pour code

Private Sub Command1_Click()

End Sub

(deux rubriques plus loin, toujours dans "MSXML and Windows", cette fois
dans "Using Visual Basic to create sample DLL and EXE file")

Ayant fait cela je ne suis guère surpris qu'il ne se passe rien, et la
tentation est grande de créer un objet DLLtest.TestSxS se référant au
module de classe de la DLL créée juste avant, et d'ajouter dans le code
de la DLL, au niveau Class_Initialize, un MsgBox pour qu'il se passe
quelque chose à l'écran, histoire de vérifier que j'ai bien initialisé
un objet DLLtest.TestSxs

Effectivement, à l'exécution de Set X = New DLLtest.TestSxS dans
l'application test, j'ai bien le MsgBox qui s'affiche, ce qui est
encourageant.

Là où ça deviendrait intéressant, et j'imagine que c'est le but du
composant, c'est une fois que je réussirais à créer un document XML à
l'aide de ce composant. La difficulté, c'est que pour cela il convient
d'abord de créer un objet à identifier à X.It (X étant un objet
DLLtest.TestSxS tel que défini dans le kit, et It étant sa propriété
définie dans la DLL).

C'est lorsque je lance Set D = New DOMDocument40 que j'obtiens une
erreur 429, "le composant ActiveX ne peut créer l'objet". Je soupçonne
que ceci renvoie à ma première question, et que le composant pourrait
créer l'objet une fois que mon manifeste serait correct.

Le fait que je ne sois pas sur une fausse piste serait déjà
encourageant, et alors dénicher ce fichu msxml4.manifest serait me
semble-t-il bien utile.

Merci pour tout coup de main ...
Paul Bacelar
2006-11-07 19:47:55 UTC
Permalink
Vous n'avez vraisemblablement pas d'application managé qui utilise MSXML4
(les versions supérieurs ne supportent pas le SxS).

Voici une URL avec le contenu de "msxml4.manifest".

http://windowssdk.msdn.microsoft.com/en-gb/library/ms766454.aspx
--
Paul Bacelar
MVP VC++
Post by Gloops
Bonjour tout le monde,
J'ai téléchargé il y a quelques jours le kit Microsoft XML à l'adresse
http://download.microsoft.com/download/c/7/5/c75d4b79-35ad-4ae1-acbe-9ba7aa44d1c2/xmlsdk.msi
Je suis en train de faire mes premiers pas avec, et ce à l'aide de VB6 sur
une machine avec Windows XP. A la rubrique GUID and ProgID Information /
Dependencies in MSXML / MSXML and Windows / Creating a manifest for your
application, je vois qu'il m'est conseillé au point 4 de conformer mon
manifeste d'application aux informations incluses dans le manifeste
d'assemblage de MSXML, d'extension msxml4.manifest, que je m'attends à
trouver dans le répertoire C:\Windows\WinSxS\Manifests, or je ne trouve
aucun fichier avec cette extension non seulement dans ce répertoire, mais
sur tout mon disque.
N'ayant pu construire un manifeste d'application qui se tienne, je suppose
qu'il est normal que je me ramasse une erreur 429 en lançant l'application
de test (après l'avoir un peu complétée pour qu'elle fasse un petit peu
quelque chose, voir ci-dessous.
Quelqu'un voit-il ce que j'ai mal lu ?
*
Par ailleurs, peut-être vais-je comprendre mieux en y passant un peu plus
de temps, mais les instructions de création de l'application de test
proposent de créer un bouton avec juste pour code
Private Sub Command1_Click()
End Sub
(deux rubriques plus loin, toujours dans "MSXML and Windows", cette fois
dans "Using Visual Basic to create sample DLL and EXE file")
Ayant fait cela je ne suis guère surpris qu'il ne se passe rien, et la
tentation est grande de créer un objet DLLtest.TestSxS se référant au
module de classe de la DLL créée juste avant, et d'ajouter dans le code de
la DLL, au niveau Class_Initialize, un MsgBox pour qu'il se passe quelque
chose à l'écran, histoire de vérifier que j'ai bien initialisé un objet
DLLtest.TestSxs
Effectivement, à l'exécution de Set X = New DLLtest.TestSxS dans
l'application test, j'ai bien le MsgBox qui s'affiche, ce qui est
encourageant.
Là où ça deviendrait intéressant, et j'imagine que c'est le but du
composant, c'est une fois que je réussirais à créer un document XML à
l'aide de ce composant. La difficulté, c'est que pour cela il convient
d'abord de créer un objet à identifier à X.It (X étant un objet
DLLtest.TestSxS tel que défini dans le kit, et It étant sa propriété
définie dans la DLL).
C'est lorsque je lance Set D = New DOMDocument40 que j'obtiens une erreur
429, "le composant ActiveX ne peut créer l'objet". Je soupçonne que ceci
renvoie à ma première question, et que le composant pourrait créer l'objet
une fois que mon manifeste serait correct.
Le fait que je ne sois pas sur une fausse piste serait déjà encourageant,
et alors dénicher ce fichu msxml4.manifest serait me semble-t-il bien
utile.
Merci pour tout coup de main ...
Gloops
2006-11-08 10:36:34 UTC
Permalink
Post by Paul Bacelar
Vous n'avez vraisemblablement pas d'application managé qui utilise MSXML4
C'est même pire que ça, j'ai oublié ce qu'est une application managée
(pour ce qui est de la plateforme .Net je n'ai fait que lire le livre et
quelques mois se sont écoulés depuis).

Google me suggère de lire ça :
http://www.microsoft.com/france/msdn/securite/vs05security.mspx
Post by Paul Bacelar
(les versions supérieurs ne supportent pas le SxS).
Ah, il va falloir que je révise, j'avais cru comprendre que c'était les
versions jusqu'à 3 qui ne le supportaient pas ...
Post by Paul Bacelar
Voici une URL avec le contenu de "msxml4.manifest".
http://windowssdk.msdn.microsoft.com/en-gb/library/ms766454.aspx
J'en prends bonne note, je vais essayer ça après-demain, merci.

Dans la section 4, on me demande de vérifier que les valeurs coïncident
avec ce que j'ai dans msxml4.manifest, si j'ai bien compris je n'ai pas
d'autre choix que de supposer que oui, puisque je crée msxml4.manifest à
partir du code fourni.



"For the version and tokenKey attributes, verify that the values match
those used in the assembly manifest that is provided for MSXML 4.0 when
it installs under Windows in Side-by-Side (SxS) mode. Assembly manifests
are located in the special WinSxS/Manifest directory. For example, the
assembly manifest file for MSXML 4.0 is called msxml4.manifest."
Gloops
2006-11-08 10:37:14 UTC
Permalink
Post by Paul Bacelar
Vous n'avez vraisemblablement pas d'application managé qui utilise MSXML4
C'est même pire que ça, j'ai oublié ce qu'est une application managée
(pour ce qui est de la plateforme .Net je n'ai fait que lire le livre et
quelques mois se sont écoulés depuis).

Google me suggère de lire ça :
http://www.microsoft.com/france/msdn/securite/vs05security.mspx
Post by Paul Bacelar
(les versions supérieurs ne supportent pas le SxS).
Ah, il va falloir que je révise, j'avais cru comprendre que c'était les
versions jusqu'à 3 qui ne le supportaient pas ...
Post by Paul Bacelar
Voici une URL avec le contenu de "msxml4.manifest".
http://windowssdk.msdn.microsoft.com/en-gb/library/ms766454.aspx
J'en prends bonne note, je vais essayer ça après-demain, merci.

Dans la section 4, on me demande de vérifier que les valeurs coïncident
avec ce que j'ai dans msxml4.manifest, si j'ai bien compris je n'ai pas
d'autre choix que de supposer que oui, puisque je crée msxml4.manifest à
partir du code fourni.



"For the version and tokenKey attributes, verify that the values match
those used in the assembly manifest that is provided for MSXML 4.0 when
it installs under Windows in Side-by-Side (SxS) mode. Assembly manifests
are located in the special WinSxS/Manifest directory. For example, the
assembly manifest file for MSXML 4.0 is called msxml4.manifest."
Gloops
2006-11-10 09:16:59 UTC
Permalink
Post by Paul Bacelar
Vous n'avez vraisemblablement pas d'application managé qui utilise MSXML4
(les versions supérieurs ne supportent pas le SxS).
Voici une URL avec le contenu de "msxml4.manifest".
http://windowssdk.msdn.microsoft.com/en-gb/library/ms766454.aspx
Bon, on ne peut pas dire que le résultat soit immédiat.

J'ai essayé avec, dans msxml4.manifest, une deuxième section assembly,
avec, pour assemblyidentidy, name="Microsoft.MSXML4" au lieu de
Microsoft.MSXML2".

MyTestApp.exe.manifest est reproduit ci-dessous.

L'initialisation de l'objet créé d'après le module de classe TestSxS se
passe toujours bien, mais j'ai toujours une erreur 429 (le composant ne
peut créer l'objet) sur la ligne Set D = New DOMDocument40

Et j'avoue que je sèche ...

= = = = = = = = = = = = = = = = = = = = = =
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0"
processorArchitecture=""
name="MyTestApp"
type=""
/>
<description>Test d'une DLL de gestion XML</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.MSXML4"
version=""
processorArchitecture="X86"
publicKeyToken=""
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
Paul Bacelar
2006-11-10 11:11:19 UTC
Permalink
Pourquoi changer le nom ?
Essayez avec le nom original.
--
Paul Bacelar
MVP VC++
Post by Gloops
Post by Paul Bacelar
Vous n'avez vraisemblablement pas d'application managé qui utilise MSXML4
(les versions supérieurs ne supportent pas le SxS).
Voici une URL avec le contenu de "msxml4.manifest".
http://windowssdk.msdn.microsoft.com/en-gb/library/ms766454.aspx
Bon, on ne peut pas dire que le résultat soit immédiat.
J'ai essayé avec, dans msxml4.manifest, une deuxième section assembly,
avec, pour assemblyidentidy, name="Microsoft.MSXML4" au lieu de
Microsoft.MSXML2".
MyTestApp.exe.manifest est reproduit ci-dessous.
L'initialisation de l'objet créé d'après le module de classe TestSxS se
passe toujours bien, mais j'ai toujours une erreur 429 (le composant ne
peut créer l'objet) sur la ligne Set D = New DOMDocument40
Et j'avoue que je sèche ...
= = = = = = = = = = = = = = = = = = = = = =
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0"
processorArchitecture=""
name="MyTestApp"
type=""
/>
<description>Test d'une DLL de gestion XML</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.MSXML4"
version=""
processorArchitecture="X86"
publicKeyToken=""
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
Gloops
2006-11-10 17:39:38 UTC
Permalink
Post by Paul Bacelar
Pourquoi changer le nom ?
Essayez avec le nom original.
Bon, ce que j'ai compris, c'est qu'on doit avoir :
- un manifeste du kit dans C:\Windows\WinSxS, correspondant à la version
utilisée (2 à 6), nommé msxml2.manifest à msxml6.manifest (je
m'attendais à le trouver là après l'installation du kit, à défaut je
l'ai créé à partir de la fiche citée plus haut)
- et un manifeste pour l'application, dans le même répertoire que
l'exécutable, et portant le même nom suivi de .manifest, avec des
valeurs devant coïncider entre les deux.

D'après cette question, j'ai l'impression que j'ai dû me tromper quelque
part ...
Gloops
2006-11-19 16:50:02 UTC
Permalink
Post by Gloops
D'après cette question, j'ai l'impression que j'ai dû me tromper quelque
part ...
Quelqu'un serait-il en mesure de me dire où ?
Paul Bacelar
2006-12-01 14:57:57 UTC
Permalink
Avez-vous essayé Manifestchk.vbs.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sbscs/setup/manifestchk_vbs.asp
--
Paul Bacelar
MVP VC++
Post by Gloops
Post by Gloops
D'après cette question, j'ai l'impression que j'ai dû me tromper quelque
part ...
Quelqu'un serait-il en mesure de me dire où ?
Gloops
2006-12-04 14:25:08 UTC
Permalink
Ce message pourrait être inapproprié. Cliquez pour l'afficher.
Paul Bacelar
2006-12-05 15:34:02 UTC
Permalink
Post by Gloops
Post by Paul Bacelar
Avez-vous essayé Manifestchk.vbs.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sbscs/setup/manifestchk_vbs.asp
On dirait que c'est un moyen d'avoir des pistes ...
Je pense que c'est à partir de Jeudi que je vais pouvoir passer un peu de
temps là-dessus.
J'ai cherché "download" sur la page, est-ce une manifestation de ma
naïveté ?
"a validation tool provided in the Microsoft Windows Software Development
Kit (SDK)"
J'ai un xmlsdk.msi provenant du site Microsoft, ça doit bien être celui
dont il s'agit, non ?
Je commence franchement à me demander si je l'ai installé comme j'aurais
dû ...
Pas de Manifestchk.vbs sur mon disque dur ...
J'ai pourtant un répertoire "C:\Program Files\Microsoft XML Parser SDK",
contenant les répertoires Docs, inc, lib. Mais pas de vbs là-dedans.
De toute manière j'ai lancé la recherche dans l'explorateur à partir de C:\
Ou alors il s'agit d'un autre SDK ?
Il parle du "Platform SDK".
http://www.microsoft.com/msdownload/platformsdk/setuplauncher.htm
--
Paul Bacelar
MVP VC++
Gloops
2006-12-08 21:56:07 UTC
Permalink
Post by Paul Bacelar
Il parle du "Platform SDK".
http://www.microsoft.com/msdownload/platformsdk/setuplauncher.htm
On dirait bien qu'il me manquait des billes, et pas qu'un peu ...
Je suis inscrit à une formation .Net pour bientôt, on dirait que ça
devrait aider, vu le titre "Visual Studio" sur la page, d'ailleurs XML
est au programme.

Je vais regarder ce joujou, avec un peu de chance il me permettra de
prendre un peu d'avance.

A titre d'info, cette page renvoie maintenant sur celle-ci :

http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en


D'après ce qu'il m'a semblé lire, il s'agit en gros d'installer Windows
Server sur Windows XP. Apparemment, j'ai de la lecture en perspective.

Merci.

Continuer la lecture sur narkive:
Loading...