编辑资源文件而不重新编译ASP.NET应用程序

dec*_*dev 26 asp.net resources resx

我想在部署后启用资源文件可编辑.我读过这篇文章,暗示这是可能的,但我似乎无法弄清楚我需要更改哪些设置来启用此功能.

我已将App_GlobalResources文件夹添加到我的ASP.NET 3.5"Web应用程序",并将资源文件添加到此文件夹.我假设需要更改此文件的Build Action,但无论我将Build Action更改为什么,我都无法实现上述功能.

App_GlobalResources文件夹和资源文件将复制到bin目录中.部署后,不会显示对.resx文件的任何编辑.

有任何想法吗?

Mik*_*ole 26

你可以做到这一点,我就是这样做的.

在项目中选择资源文件.将构建操作更改为内容.确保"复制到输出目录"设置已关闭.部署项目时,App_GlobalResources目录和.resx文件将被复制到您的网站的根目录.您可以修改.resx文件,您的实时网站将识别更改.

  • 如果您这样做,您的应用程序池将在您的web ap上回收 (12认同)
  • @AltafPatel如果更改一个web.config您的应用程序池将回收过,这是否意味着大家谁愿意使用的AppSettings从重新部署他们的应用程序继续这样做是错的? (6认同)
  • @AltafPatel - 我认为他的意思是,根据你的逻辑,你永远不能使用web.config设置,因为:"更改web.config设置将回收你的应用程序池,这意味着所有当前会话都将丢失.这不是一个有效的解决方案." 这个答案的想法是,即使您必须在更改后回收应用程序池,它也比重新编译和重新部署代码更好,这也会回收应用程序池. (6认同)
  • 简而言之,所有当前会议都将结束. (2认同)
  • 这将重新编译应用程序,这意味着所有当前会话都将丢失.无效的解决方案. (2认同)
  • 我不相信这个解决方案真的有效。我完全按照说明进行操作 - 除非我重建和重新部署我的项目 DLL,否则不会使用修改后的资源。 (2认同)

wom*_*omp 12

Web应用程序项目与Web站点项目不同.我怀疑你可以用Web应用程序项目实现你想要的.你可以查看这篇文章:

ASP.NET网站或ASP.NET Web应用程序?

资源通常是静态的.它们是程序消耗并依赖于存在的图像,字符串和文件等项目(因此在字符串/ RESX文件的情况下可以强类型化).使用资源的原因只是将它们与您的DLL捆绑在一起,以便分发和引用资源变得更加容易.

在运行时可编辑表明您可能想要使用项目或用户设置,或者可能是数据库?如果需要使用RESX文件,可能需要编写代码来读/写它们.