Partager via


Procédure d'ajout et de référence des assemblys personnalisés à l'aide du modèle objet InfoPath 2003

Lorsque vous ajoutez une référence à un assembly personnalisé dans un projet de modèle de formulaire avec code géré, cet assembly est inclus dans le fichier de modèle de formulaire (.xsn) lors de la compilation et de la publication du projet.

Ajout et référence à un assembly personnalisé

Pour éviter un conflit avec la manière dont le projet InfoPath gère les fichiers ajoutés au fichier de modèle du formulaire, ne copiez aucun des assemblys que vous souhaitez référencer dans le dossier du niveau le plus élevé du projet de modèle de formulaire. Par défaut, le chemin est au format <lecteur>:\Documents and Settings\NomUtilisateur\Mes Documents\Projets Visual Studio\NomProjet

Si vous souhaitez déplacer des assembly personnalisés auxquels vous faites référence depuis le dossier du projet, vous devez créer un sous-dossier dans le dossier principal du projet, puis copier et référencer les assemblys personnalisés depuis ce dossier. Cependant, la création d'un sous-dossier pour les assemblys référencés n'est pas nécessaire. Tant qu'un assemble référencé ne se trouve pas dans le dossier de niveau supérieur du projet, le projet InfoPath copie l'assembly dans le fichier de modèle de formulaire (.xsn) lorsque le projet est compilé et publié.

Référence à un assembly personnalisé depuis son emplacement par défaut

  1. Ouvrez le projet de modèle de formulaire dans Microsoft Visual Studio Tools for Applications (VSTA), Visual Studio 2005 avec Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 ou Visual Studio 2008 avec Visual Studio Tools pour Office.

  2. Dans le menu Projet, cliquez sur Ajouter une référence.

  3. Dans l'onglet .NET, cliquez sur Parcourir, recherchez l'assembly, puis cliquez sur OK pour ajouter la référence.

Dépendances dans les sous-projets référencés (Visual Studio)

Dans Visual Studio, si vous ajoutez et référencez un projet supplémentaire, tel qu'une Bibliothèque de classes, en tant que sous-projet d'une solution d'un modèle de formulaire InfoPath avec code géré (pointez sur Nouveau dans le menu Fichier, cliquez sur Projet, puis sélectionnez Ajouter à la solution dans la boîte de dialogue Nouveau projet et enfin ajoutez le sous-projet comme référence dans le projet InfoPath), les assemblys référencés par le sous-projet ne sont pas inclus dans le fichier de modèle de formulaire du projet (nomprojet.xsn) et le formulaire final ne se charge pas correctement. Pour remédier à ce problème, modifiez le fichier de définition du formulaire (manifest.xsf) et ajoutez manuellement les entrées pour les assemblys référencés par le sous-projet selon la procédure qui suit.

Ajout d'assemblys dépendants à partir de sous-projets référencés

  1. Fermez la fenêtre de création de formulaire d'InfoPath.

  2. Dans l'Explorateur de solution, cliquez avec le bouton droit sur le fichier manifest.xsf, puis cliquez sur Ouvrir.

  3. Dans l'élément <xsf:files>, ajoutez un fragment XML au format suivant pour chaque composant référencé par le sous-projet, en remplaçant AssemblyName.dll par le nom du composant référencé :

    <xsf:file name="AssemblyName.dll">
        <xsf:fileProperties>
            <xsf:property name="fileType" type="string" value="refAssembly"></xsf:property>
            </xsf:fileProperties>
    </xsf:file>
    
  4. Enregistrez vos modifications dans le fichier manifest.xsf.

  5. Après avoir mis à jour manuellement le fichier manifest.xsf, copiez chaque composant référencé par le sous-projet (AssemblyName.dll) dans le dossier du fichier manifest.xsf. Il s'agit habituellement d'un chemin dans votre dossier Mes Documents au format suivant : <lecteur>:\Documents and Settings\NomUtilisateur\Mes Documents\Projets Visual Studio\NomProject\. Lorsque vous compilez et publiez le fichier de modèle de formulaire, il inclut le résultat du sous-projet et des assemblys référencés par le sous-projet.

Voir aussi

Tâches

Procédure de création d'un modèle de formulaire avec code managé à l'aide du modèle objet InfoPath 2003