2011-10-25 74 views
2

我目前有一個SharePoint 2010項目,我在其中創建了一個空元素並創建了我的各種資源文件。我已經將這些資源設置爲類型AppGlobalResource進行部署。如何將相同的資源文件部署到14個配置單元和全局資源文件夾?

這工作得很好,讓我來訪問我的資源價值

<asp:Label ID="myLabel" runat="server" Text="<%$Resources:MyResources, MyLabel %>" /> 

我希望能夠做的下一件事是從後面的代碼訪問的資源值。因此,要訪問值我應該使用SPUtility.GetLocalizedString I read

所以我創建了一個類似下面的助手類。

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文件夾中。如果我修改下面的位置使用資源\甚至資源/它提供了一個錯誤說

Error 1 Error occurred in deployment step 'Add Solution': Error: Cannot find this file specified in the manifest file:

資源\ 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

我已經有解決方案如下:

  1. 創建新的SharePoint 2010項目
  2. 創建一個空的SharePoint元素
  3. 資源文件添加到元素
  4. 設置文件的屬性「部署類型」添加到AppGlobalResource並清除部署「路徑」爲空
  5. 添加一個SharePoint 2010映射文件夾並將其映射到14配置單元中的資源文件夾
  6. 複製從元素到資源的資源文件夾(不用擔心,這並不需要維護
  7. 創建的預構建運行到資源從元素複製到一個XCOPY命令映射文件夾(如下所示)

    的xcopy 「$(PROJECTDIR)GlobalResources \ MyResource.resx」 「$(PROJECTDIR)資源\」/ Y/R

希望這可以幫助其他人,請讓我知道有沒有人有更好的方法!

0

岸堤,

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

對於此部署,請按照以下步驟在VS2010中。

  1. 在VS2010項目中添加一個SharePoint元素。
  2. 在此元素文件夾中添加資源文件。
  3. 選擇資源文件的屬性,並請參閱「部署類型」屬性並將其更改爲 - >「AppGlobalResource」

然後部署要部署的資源文件的項目。

快樂部署... !!!

+0

我已經說過我已經做到了這一點,問題也是部署相同的文件到14蜂巢。有任何想法嗎? – Andrew