Visual Studio 2015 не может изменять модификатор доступа к новым файлам ресурсов

Я пытаюсь создать новые файлы ресурсов в VS2015. Я создал их отлично, но когда я пытаюсь изменить "модификатор доступа", выпадающее меню отключено...

Любые идеи?

Я работаю в ASP.NET MVC 6 (ASP.NET5). Проект представляет собой библиотеку классов, но я тестировал в Web Project с одинаковыми результатами.

Спасибо!!

введите описание изображения здесь

Изменить: добавлено окно свойств введите описание изображения здесь

Ответы

Ответ 1

Вы можете проверить свойство своего файла и проверить, является ли Custom Tool ResXFileCodeGenerator? Если это GlobalResourceProxyGenerator, выпадающий список будет отключен.

Ответ 2

У меня была такая же проблема, но я нашел это простое решение Выпадающий вариант модификации Visual Studio Access отключен для файла ресурсов

Подводя итог:

  • Щелкните правой кнопкой мыши на своем ресурсе файла, выберите "Свойства" (Alt + Enter)
  • Изменить действие сборки для встроенного ресурса
  • Сменить пользовательский инструмент на PublicResXFileCodeGenerator

Ответ 4

A) В проектах Asp.net Core

Эта проблема является известной ошибкой в проектах Asp.net Core и модификатором доступа по умолчанию public, и вы не можете ее изменить, Он будет решен командой core asp.net следующих обновлений , но, если вам нужен модификатор доступа internal, вы можете использовать мое временное решение:

  • Добавьте все элементы конструктора ресурсов в Resource.resx и сохранить.
  • В проводнике решений разверните дерево Resource.resx и откройте Resource.Designer.cs
  • Заменить все public строки в нем с помощью internal и сохранить.

Примечание: каждый раз, когда вы сохраняете файл Resource.resx, вы должны снова выполнить шаг 3.

Наконец, вы должны иметь файл Resource.Designer.cs с такими модификаторами доступа: введите описание изображения здесь

Также проверьте файл namespace in Resource.Designer.cs. он должен быть подходящим namespace. Синхронизировать с вашим проектом namespace.


B) В обычных проектах Asp.net

Если у вас нет свойства CustomTool в файле Properties panel для вашего ресурса (.resx), чтобы изменить его на PublicResXFileCodeGenerator и решить проблему

Затем вы должны вручную изменить некоторые параметры в файле проекта (.csproj). Это так просто, просто следуйте моим инструкциям:

  • Щелкните правой кнопкой мыши на своем проекте в solution explorer и выберите Выгрузить проект
  • Щелкните правой кнопкой мыши по нему и выберите Изменить..... csproj
  • В открывшемся файле .csproj найти строку .resx вы увидите там блок настроек. Это что-то вроде bellow-кодов.
  • Изменить на что-то вроде следующего кода (включая PublicResXFileCodeGenerator):

.

<EmbeddedResource Include="MyResourceFile.resx">
      <SubType>Designer</SubType>

      <Generator>PublicResXFileCodeGenerator</Generator> <!--important line-->

      <LastGenOutput>MyResourceFile.Designer.cs</LastGenOutput>
</EmbeddedResource>
  1. Сохранить отредактированный файл .csproj
  2. Щелкните правой кнопкой мыши по проекту в solution explorer и выберите Обновить проект
  3. Теперь откройте ваш .resx файл и наслаждайтесь;)

Примечание. используйте имя файла ресурса вместо MyResourceFile