2010-07-07 5 views
5

J'ai des fichiers, des fichiers son (.wav et .mp3) et des fichiers texte (.rtf), dans mon dossier bin \ Debug lors du codage, mais après leur publication, ils sont introuvables.Comment déployer des fichiers avec une application clickonce?

Mon application peut lire des fichiers son et ce sont les fichiers son par défaut qui sont censés être installés avec l'application dans le chemin Application.Startup.

Les fichiers texte * .rtf que je charge dans un contrôle RichtextBox dans mon formulaire d'aide pour l'application. J'ai leurs propriétés définies sur Contenu et Copier si elles sont plus récentes.

Répondre

7

Vous devez définir ces fichiers comme du contenu (comme vous l'avez fait) afin qu'ils soient copiés dans le dossier bin. Puis ouvrez la page de propriétés du projet, sélectionnez l'onglet "Publier" et cliquez sur "Fichiers d'application ...". Vous devriez maintenant voir une liste de fichiers liés à votre projet et une valeur indiquant comment ils devraient être publiés. Il est plus que probable que vos fichiers ont été marqués comme données et qu'ils sont destinés à votre dossier de données d'applications ClickOnce et non au dossier bin. Modifiez votre code pour utiliser le dossier de données ClickOnce (il existe des méthodes d'assistance) ou assurez-vous que "Inclure" est sélectionné et non "Fichier de données".

Alternativement, si les fichiers ne sont pas supposés changer sur l'application client, vous pouvez envisager d'intégrer vos fichiers dans votre DLL en tant que ressource.

+0

Merci, @Bronumski. Mais l'autre problème que j'ai est que j'ai importé mon projet dans un dépôt svn en ligne. Puis j'ai vérifié ma copie de travail. Désormais, ces fichiers, tels qu'affichés dans Visual Studio Solution Explorer, ne possèdent pas les icônes spécifiques au type de fichier et, dans la fenêtre Propriétés, les propriétés "Build Action" et "Copy to Output Directory" ne sont pas affichées. – systemovich

+1

Je devais juste faire définir "Contenu" et "Copier dans le répertoire de sortie" pour les copies des fichiers dans le dossier bin \ Debug et concaténer "\ bin \ Debug" à Application.StartupPath au code où je charge les fichiers. Merci. – systemovich

1

Ce n'est pas clair pour moi - avez-vous ajouté ces fichiers à votre projet dans Visual Studio? Si c'est le cas, ajoutez-les au niveau supérieur où se trouve votre fichier csproj ou placez-les dans un dossier sous-jacent (ils seront déployés dans le même chemin relatif). Je ne serais certainement pas inclure les fichiers du dossier \ bin \ debug. Vous pouvez facilement effacer votre dossier \ bin quelque temps et c'est parti. Je ne suis pas sûr que tu fasses ça, mais on dirait que tu l'es.

Si vous les mettez au niveau supérieur de votre projet, ils seront au plus haut niveau de votre déploiement. Si vous les mettez dans un dossier, ils seront dans ce chemin relatif. Définir l'action de construction à "contenu", et je voudrais définir "copier dans le répertoire de sortie" à "copier toujours".

+0

J'ai aussi les fichiers au niveau supérieur, mais leurs propriétés "Build Action" et "Copy to Output Directory" n'apparaissent pas dans la fenêtre Propriétés. Dans l'Explorateur de solutions, ces fichiers ne possèdent pas non plus les icônes spécifiques au type de fichier, mais l'icône par défaut "page blanche avec coin supérieur droit et bordure en pointillé". Voici une capture d'écran où le fichier Alarm_Clock_Help.rtf est sélectionné dans l'Explorateur de solutions: http://tinyurl.com/39lqo45 – systemovich

+0

Mon commentaire précédent fait référence. J'ai trouvé que la raison en était que j'ai copié les fichiers en utilisant l'Explorateur Windows. J'ai maintenant ajouté les fichiers au projet en utilisant "Projet> Ajouter un élément existant ..." du menu Visual Studio et ils ont les bonnes icônes et les bonnes propriétés. – systemovich

+0

Je pensais que tu avais probablement fait ça. Je pense que vous pouvez faire un clic droit sur eux et sélectionnez "inclure dans le projet" et il va les ajouter au projet dans ce cas aussi. Les fichiers sont-ils déployés avec succès maintenant? – RobinDotNet

Questions connexes