如何将相同的资源文件部署到14 hive和global资源文件夹?

时间:2011-10-25 15:26:27

标签: deployment sharepoint-2010 resources localization

我目前有一个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文件夹并将文件添加到其中。但问题是我现在在同一个项目中有两个版本的文件。所以我尝试使用添加现有然后链接到选项添加资源文件,但它似乎不允许你这样做。

使用SharePoint功能/包部署到配置单元和Global_ResourceFolder而没有多个资源文件副本的最佳方法是什么?

修改 我已经编辑了Package.Template.xml文件,该文件成功地将文件部署到配置单元。但不在Resources文件夹中。如果我修改下面的位置以使用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>

2 个答案:

答案 0 :(得分:2)

我采用的解决方案如下:

  1. 创建新的SharePoint 2010项目
  2. 创建一个空的SharePoint元素
  3. 将资源文件添加到元素
  4. 将文件的属性“部署类型”设置为AppGlobalResource,并将部署“路径”清除为空白
  5. 添加SharePoint 2010映射文件夹并将其映射到14配置单元中的Resources文件夹
  6. 将资源文件从Element复制到Resources文件夹(不用担心这不需要维护)
  7. 创建一个在预构建时运行的XCOPY命令,用于将资源从Element复制到映射文件夹(如下所示)

    xcopy“$(ProjectDir)GlobalResources \ MyResource.resx”“$(ProjectDir)Resources \”/ Y / R

  8. 希望这有助于其他人,如果有人有更好的方法,请告诉我!

答案 1 :(得分:0)

岸堤,

在Application Directories的App_GlobalResources文件夹中部署资源文件的最佳方法。

对于此部署,请按照VS2010中的以下步骤进行操作。

  1. 在VS2010项目中添加一个SharePoint元素。
  2. 在此Element文件夹中添加资源文件。
  3. 选择资源文件的属性并查看“部署类型”属性并将其更改为 - &gt; “AppGlobalResource”
  4. 然后部署要在其中部署资源文件的项目。

    快乐部署...... !!!