VS2008发布网站后无法解析全局资源
-
21-08-2019 - |
题
我有一个在 VS 2008 中运行的 Web 项目。我们在 App_GlobalResources 文件夹中有一些用于国际化的全局资源文件 (*.resx)。所有这一切对我在 VS 中安装的本地 IIS 来说就像一个魅力。
但是当我将我的网络项目发布到本地文件系统和/或另一台服务器时,所有资源都无法再找到。所以我猜预编译在某种程度上破坏了东西。当我调用预编译的web时,我得到一个错误,找不到带有键xyz的资源对象,尽管之前可以找到它。
我使用 .NET Reflector 检查了资源内容是否已进入 *.dll。所有这些标识符都在那里(bin/Web.dll、bin/<culture>/Web.resources.dll)。标识符的加载方式如下:
<asp:MenuItem NavigateUrl="~/OrderNew.aspx" Text="<%$ Resources:MyProject, MenuNewOrder %>" Value="NewOrder">
资源文件名为 MyProject.resx 和 MyProject.<culture>.resx,其中 <culture> 对应于特定区域性(即MyProject.de-DE.resx)。
有什么想法如何解决这个问题吗?
我真的很感谢任何帮助。
谢谢
编辑:
如果我手动将 App_GlobalResources 文件夹复制到输出中,资源可能会正常加载。所以我真的很想知道这个预编译是关于什么的。
我仍然对“以正确的方式”解决问题感兴趣。
解决方案
我遇到了同样的问题,必须对 resx 文件属性进行两项更改。
- 将“构建操作”设置为内容
- 将“复制到输出目录”设置为始终复制
其他提示
(我不能在以前的答案尚未置评...没有信誉......?)
这并没有解决我的问题,我很害怕。
当试图“内容/复制始终”解决方案,我得到一个异常说,在编译时链接没有工作。
为什么asp.net需要的RESX文件时,资源被编译!?
从另一个项目复制资源文件时,我有这个错误。
我删除了全局资源,增加新的资源,并复制从旧到新的XML元素data
解决了这个。
这导致用于该资源的以下设置:
<ItemGroup>
<Content Include="App_GlobalResources\Global.resx">
<Generator>GlobalResourceProxyGenerator</Generator>
<LastGenOutput>Global.Designer.cs</LastGenOutput>
</Content>
</ItemGroup>
我有同样的问题。每当我发表我的应用程序在Small Business Server(SBS2008)它停留在控制名称线,但实际上在元:它获取ResourceKey一部分。上述方案中的非helpd我
我花6小时搞清楚了这一点,最后我意识到这happend当我没有在服务器上的文件夹的一些cleenup。在begning我所有的应用程序是位于E:在他们的文件夹,但那时我已经创建的文件夹与指示应用ApplicationPools名字和我谨coresponding应用有
。我不知道IIS7在我的SBS如何寻找资源文件,但肯定这是问题。当我回到我的应用程序到E:再次一切都开始像一个魅力的工作。