J'ai répondu à une semblable mais différente de la question à http://stackoverflow.com/questions/2747081/how-do-you-include-additional-files-using-vs2010-web-deployment-packages.
Dans votre scénario, vous êtes à l'aide de post-construction de l'événement, je vous recommande de déposer le post-construction de l'événement et de mettre en œuvre vos actions à l'aide de votre propre MSBuild cibles au lieu de l'événement post-construction. Vous trouverez ci-dessous le texte de la réponse.
De: Comment avez-vous d'inclure d'autres fichiers à l'aide de VS2010 web packages de déploiement?
Grande question. Je viens de poster une très détaillé d'une entrée de blog à ce sujet à l' Outil de Déploiement Web (MSDeploy) : Construire le programme, y compris des fichiers supplémentaires ou exclure des fichiers spécifiques.
Voici le synopsis. Après, y compris les fichiers, je montre comment exclure des fichiers.
Y Compris Les Fichiers Supplémentaires
Y compris les fichiers supplémentaires dans le paquet est un peu plus difficile, mais toujours pas de bigee si vous êtes à l'aise avec MSBuild, et si vous n'êtes pas alors lisez ceci. Pour ce faire nous avons besoin de raccordement dans le cadre du processus de collecte les fichiers pour l'emballage. La cible, nous devons étendre est appelé CopyAllFilesToSingleFolder. Cet objectif a une propriété de dépendance, PipelinePreDeployCopyAllFilesToOnefolderdependson, que nous pouvons exploiter et de les injecter notre propre cible. Nous allons donc créer une cible nommée CustomCollectFiles et de les injecter dans le processus. Nous parvenons avec la suivante (n'oubliez pas après l'instruction d'importation).
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
Cela va ajouter notre cible pour le processus, il nous faut maintenant définir la cible elle-même. Supposons que vous avez un dossier nommé des Fichiers Supplémentaires qui se trouve à 1 niveau au-dessus de votre projet web. Vous souhaitez inclure tous les fichiers. Voici la CustomCollectFiles cible et nous discutons par la suite.
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="..\Extra Files\**\*" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>Extra Files\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
Voici ce que j'ai fait était de créer le point _CustomFiles et dans l'attribut include a dit à ramasser tous les fichiers dans le dossier et le dossier de dessous. Puis-je utiliser cet élément pour remplir la FilesForPackagingFromProject élément. C'est l'élément qui MSDeploy utilise pour ajouter des fichiers supplémentaires. Notez également que j'ai déclaré les métadonnées DestinationRelativePath valeur. Cela permettra de déterminer le chemin d'accès relatif qu'il sera placé dans le paquet. J'ai utilisé la déclaration des Fichiers Supplémentaires%(RecursiveDir)%(Filename)%(Extension) ici. Ce qui est dit est à placer dans la même position relative dans le paquet tel qu'il est, en vertu de l'Extra dossier de Fichiers.
L'exclusion de fichiers
Si vous ouvrez le fichier de projet d'une application web créé avec VS 2010 vers le bas, vous trouverez une ligne avec.
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
BTW, vous pouvez ouvrir le fichier de projet à l'intérieur de la SV. Clic droit sur le projet pick Décharger le Projet. Puis cliquez droit sur le projet déchargé et sélectionnez Modifier le Projet.
Cette déclaration comprend les objectifs et les tâches que nous avons besoin. La plupart de nos personnalisations doivent être postérieure à celle de l'importation, si vous n'êtes pas sûr si après! Si vous avez des fichiers à exclure, il y a un nom d'élément, ExcludeFromPackageFiles, qui peut être utilisé pour le faire. Par exemple, disons que vous avez un fichier nommé Sample.Debug.js qui sont inclus dans votre application web, mais vous voulez que le fichier soit exclu de la création de packages. Vous pouvez placer le fragment de code ci-dessous après que l'instruction import.
<ItemGroup>
<ExcludeFromPackageFiles Include="Sample.Debug.xml">
<FromTarget>Project</FromTarget>
</ExcludeFromPackageFiles>
</ItemGroup>
En déclarant le remplissage de ce point, les fichiers seront automatiquement exclues. Remarque l'utilisation de la FromTarget métadonnées ici. Je ne vais pas entrer dans les ici, mais vous devez savoir de toujours spécifier que.