【发布时间】:2011-10-25 15:26:26
【问题描述】:
我目前有一个 SharePoint 2010 项目,我在其中创建了一个空元素并创建了各种资源文件。我已将这些资源设置为 AppGlobalResource 类型。
这很好用,允许我访问我的资源值
<asp:Label ID="myLabel" runat="server" Text="<%$Resources:MyResources, MyLabel %>" />
接下来我想做的是从后面的代码中访问资源值。所以I read 要访问我应该使用 SPUtility.GetLocalizedString 的值。
所以我创建了一个如下所示的辅助类。
public static class ResourceHelper
{
public static string GetResourceValue(string resource)
{
var lang = SPContext.Current.Web != null ? SPContext.Current.Web.Language : 1033;
string result = SPUtility.GetLocalizedString("$Resources:" + resource,"RegistrationResource",lang);
return result;
}
}
要使用这种方法访问值,我需要允许将我的资源文件部署到配置单元,这很简单。添加映射的 SharePoint 文件夹并将文件添加到其中。但问题是我现在在同一个项目中有两个版本的文件。所以我尝试使用 Add Existing 然后 Link To 选项添加资源文件,但它似乎不允许你这样做。
在没有多个资源文件副本的情况下,使用 SharePoint 功能/包部署到配置单元和 Global_ResourceFolder 的最佳方式是什么?
编辑: 我已经编辑了 Package.Template.xml 文件,该文件成功地将文件部署到配置单元。但不在资源文件夹中。如果我修改下面的位置以使用 Resources\ 甚至 Resources/ 它会给出错误提示
错误 1 部署步骤“添加解决方案”中发生错误:错误: 在清单文件中找不到此文件:
资源\RegistrationResource.resx 0 0 Company.Sharepoint.Resources
<?xml version="1.0" encoding="utf-8"?>
<Solution xmlns="http://schemas.microsoft.com/sharepoint/">
<RootFiles>
<RootFile Location="RegistrationResource.resx" />
</RootFiles>
</Solution>
【问题讨论】:
标签: deployment sharepoint-2010 resources localization