Как я могу развернуть те же файлы ресурсов в папке 14 кустов и глобальных ресурсов? - PullRequest
2 голосов
/ 25 октября 2011

В настоящее время у меня есть проект SharePoint 2010, в котором я создал пустой элемент и создал свои различные файлы ресурсов. Я установил эти ресурсы для развертывания типа AppGlobalResource.

Это прекрасно работает и позволяет мне получить доступ к значениям моего ресурса

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

Следующее, что я хочу сделать, это получить доступ к значениям ресурсов из кода. Итак, Я прочитал , что для доступа к значениям я должен использовать 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 и добавьте туда файлы. Но проблема в том, что у меня теперь есть две версии файлов в одном проекте. Поэтому я попытался добавить файлы ресурсов, используя параметр Добавить существующий , а затем Ссылка на , но, похоже, это не позволяет вам сделать это.

Каков наилучший способ развертывания в кусте и в Global_ResourceFolder с использованием компонента / пакета SharePoint без нескольких копий файлов ресурсов?

EDIT: Я отредактировал файл Package.Template.xml, который успешно развертывает файл в кусте. Но не в папке «Ресурсы». Если я изменю расположение ниже, чтобы использовать Ресурсы \ или даже Ресурсы /, будет выдано сообщение об ошибке:

Ошибка 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 ]

2 голосов
/ 26 октября 2011

Я выбрал следующее решение:

  1. Создание нового проекта SharePoint 2010
  2. Создать пустой элемент SharePoint
  3. Добавить файлы ресурсов к элементу
  4. Установите для свойства файла «Тип развертывания» значение AppGlobalResource и очистите путь развертывания, оставив его пустым
  5. Добавить сопоставленную папку SharePoint 2010 и сопоставить ее с папкой ресурсов в 14 кусте
  6. Скопируйте файлы ресурсов из элемента в папку ресурсов (не волнуйтесь, это не нужно поддерживать
  7. Создайте команду XCOPY, выполняемую перед сборкой, чтобы скопировать ресурс из элемента в сопоставленную папку (пример ниже)

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

Надеюсь, это поможет кому-то еще, пожалуйста, дайте мне знать, если у кого-то есть лучший подход!

0 голосов
/ 26 октября 2011

Andi,

Лучший способ развертывания файла ресурсов в папке App_GlobalResources каталогов приложений.

Для этого развертывания выполните следующие шаги в VS2010.

  1. Добавить один SharePointЭлементы в проекте VS2010.
  2. Добавить файл ресурса в эту папку элемента.
  3. Выберите свойство файла ресурса и откройте свойство «Тип развертывания» и измените его на -> «AppGlobalResource»

Затем разверните проект, в котором вы хотите развернуть файл ресурсов.

Счастливое развертывание ... !!!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...