2009-10-29 8 views
13

Existe-t-il un moyen de configurer Visual Studio pour publier tous les fichiers PDF?Comment définir Visual Studio pour Publier automatiquement les fichiers PDF

Je sais que vous pouvez définir chaque fichier PDF individuel dans un projet à l'aide de la propriété "Action" de l'action de construction .

Mais cela signifie faire la même chose 100 fois pour mon projet actuel, y a-t-il un moyen de changer un paramètre global pour faire la même chose?

+0

publier des fichiers PDF? Que diriez-vous de mettre les fichiers PDF en dehors de votre projet et les mappés via un dossier virtuel sur votre serveur Web? –

+0

Les serveurs Web ne sont pas vraiment les problèmes, le problème est d'obtenir des fichiers PDF qui sont utilisés et des manuels/documents/téléchargements sont ajoutés au projet, mais vous devez les définir de sorte que lorsque vous publiez, ils sont transférés au serveur. une fois là tout va bien. – TheAlbear

+0

Pourquoi ne pas utiliser la multi-sélection? Juste quelques clics de souris et vous avez terminé.Ou, si vos documents PDF sont répartis dans l'arborescence du projet, ouvrez le fichier projet dans un éditeur de texte et effectuez une recherche et un remplacement globaux. –

Répondre

2

Supposons que vous aviez les fichiers PDF que vous souhaitez déployer en dehors du projet dans c: \ PDF, modifier le .csproj

<ItemGroup> 
    <Content Include="c:\PDFs\**\*.pdf" /> 
</ItemGroup> 

Si elles sont dans un dossier « MyPdfs » par rapport à la racine du projet

<ItemGroup> 
    <Content Include="MyPdfs\**\*.pdf" /> 
</ItemGroup> 

Quelques autres détails sur ce qui peut être trouvé sur: https://stackoverflow.com/a/12202917/37055

1

Vous pouvez éditer votre fichier projet directement pour ajouter les éléments <CopyToOutputDirectory>Always</CopyToOutputDirectory> requis aux fichiers PDF. (Si votre projet n'est pas sous contrôle de source, de test sur une copie d'abord et garder des sauvegardes en cas tout va mal)

5

Ajouter un événement post de construction avec la commande suivante:

xcopy "$(ProjectDir)myPdfs\*.pdf" "$(TargetDir)myPdfs\" /S /Y 

Note dans la La commande ci-dessus myPdfs est juste un sous-dossier de votre répertoire de projet qui contient tous les fichiers PDF. Si vous avez plus d'un de ces sous-dossiers, vous devez exécuter la commande pour chacun d'eux.

Espérons que cela fonctionne !!

+1

On dirait que c'est la meilleure option. – TheAlbear

15

il y a un moyen plus facile, vous devez d'abord vous assurer que votre fichier est inclus dans le projet, puis faites un clic droit sur le fichier allez aux propriétés, il y aura une option "copier dans le répertoire de sortie" toujours »

Bonne chance

+7

Vous devez également définir "Action de construction" sur "Contenu", alors c'est la meilleure réponse. – paul

+2

-1 La copie le copie toujours dans le répertoire bin. La réponse de Vinblad est la bonne. Changez l'action de construction en contenu. – adam0101

+0

Merci @paul .. 'Copy Always' par lui-même ne fait pas l'affaire. Définir l'action de construction résout le problème. – user1003916

1

CopyToOutputDirectory copie les fichiers dans le dossier bin lorsque vous publiez. Définir "Action de construction" sur "Contenu" copiera les fichiers sans avoir besoin du paramètre CopyToOutputDirectory. Mais cela reste à faire sur chaque fichier. Vous pouvez faire un regex remplacer dans le fichier de projet de <None Include="XXX.pdf" /> à <Content Include="XXX.pdf" />.

2

Ouvrez le fichier csproj et le changement:

<None Include="my.pdf"> 

à:

<Content Include="my.pdf"> 
13

Juste un clic droit sur le fichier que vous souhaitez inclure, choisissez Propriétés, dans la fenêtre des propriétés changement bâtir l'action au contenu . Cela inclura le fichier lors de la publication.

+1

Devrait être la réponse réelle. Merci mon pote. – fuzz

+1

c'est une meilleure réponse. – kaptan

Questions connexes