2009-04-23 7 views
26

Je souhaite que les fichiers de ressources soient modifiables après le déploiement. J'ai lu this post qui suggère que c'est possible, mais je n'arrive pas à comprendre quels paramètres j'ai besoin de changer pour activer cela.Modification de fichiers de ressources sans recompilation de l'application ASP.NET

J'ai ajouté le dossier App_GlobalResources à mon "application Web ASP.NET 3.5" et ajouté un fichier de ressources à ce dossier. Je suppose que l'action de construction pour ce fichier doit être modifiée, mais peu importe ce que je change l'action de construction à, je ne peux pas réaliser la fonctionnalité mentionnée ci-dessus.

Le dossier App_GlobalResources et le fichier de ressources sont copiés dans le répertoire bin. Une fois déployées, les modifications apportées au fichier .resx ne sont pas affichées.

Des idées?

+0

Qu'est-ce qui ne fonctionne pas? Ne recompilera-t-il pas le resx ou ne pouvez-vous pas les éditer? Ou ne pouvez-vous pas les mettre là? – asgerhallas

+0

J'ai mis à jour mon article original qui répond à votre question. – deckerdev

Répondre

12

Un projet d'application Web est différent d'un projet de site Web. Je doute que vous puissiez réaliser ce que vous voulez avec un projet d'application Web. Vous pouvez vérifier ce post:

ASP.NET Web Site or ASP.NET Web Application?

Les ressources sont généralement destinées à être statiques. Ce sont des éléments tels que des images, des chaînes et des fichiers que votre programme consomme et qui peuvent compter sur sa présence (et qui peuvent donc être fortement typés dans le cas de chaînes/fichiers RESX). La raison de l'utilisation des ressources est simplement de les regrouper avec vos DLL afin que la distribution et le référencement des ressources deviennent beaucoup plus faciles.

Modifiable lors de l'exécution suggère que vous souhaitiez utiliser des paramètres de projet ou d'utilisateur, ou peut-être une base de données? Si vous devez utiliser des fichiers RESX, vous devrez peut-être écrire du code pour les lire/écrire.

+0

Monsieur, ceci est une très belle explication :) – Dinesh

27

Vous pouvez réaliser ceci, et je l'ai juste fait.

Sélectionnez le fichier de ressources dans votre projet. Changez l'action de construction en contenu. Assurez-vous que le paramètre Copier dans le répertoire de sortie est désactivé. Lorsque vous déployez votre projet, le répertoire App_GlobalResources et votre fichier .resx sont copiés à la racine de votre site Web. Vous pouvez modifier le fichier .resx et votre site en direct reconnaîtra les modifications.

+11

Si vous faites cela, votre pool d'applications va se recycler sur votre site web – Dan

+0

Quelles sont les répercussions négatives de ce qui se passe? –

+2

En termes simples, toutes les sessions en cours se termineront. –

Questions connexes