У меня довольно простая форма, которую я хочу локализовать (у меня на самом деле есть немало в этом проекте, у всех они одинаковые проблемы). Когда я устанавливаю свойство формы Localizable
в true, Visual Studio создает файл .resx
с именем формы (как и следовало ожидать). Проблема состоит в том, что он добавляет всевозможные вещи в файл .resx, который ничего не может открыть (например, WinRes, ResEx, Simple Resx Editor, RESX Editor и т. Д.).Visual Studio создает недопустимые файлы Resx
Ошибки я получаю:
ResX Тип файла System.Drawing.Point, System.Drawing, Version = 4.0.0.0, культура = нейтральной, PublicKeyToken = b03f5f7f11d50a3a данные на линии 125, положение 4 не может быть найден. Строка 127, позиция 5. не может быть проанализирована.
Линия 124 до 127:
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="lblUsername.Location" type="System.Drawing.Point, System.Drawing">
<value>26, 24</value>
</data>
Теперь я предполагаю, что Visual Studio добавляет это так, что я могу двигаться кнопками и т.д. вокруг в зависимости от языка (я не нуждаюсь или хочу это способность). Однако он выдает указанную выше ошибку в каждом редакторе другой, чем Visual Studio.
Единственные расширения, которые Я установил (в соответствии с Менеджером Extension) являются:
- Выделите все вхождения выделенного слова
- Microsoft Ribbon для WPF (который я не использую в этом проекте)
Администратор надстройки не показывает надстройки.
Edit:
После покопаться и ручного редактирования файла .resx
, проблема на самом деле с линией 124 <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
конкретно с Version=4.0.0.0
.
Если я установил это на Version=2.0.0.0
, тогда все будет работать как в Visual Studio, так и во всех внешних программах. Проблема с этим заключается в том, что если я что-либо отредактирую в Visual Studio, он вернет его обратно к Version=4.0.0.0
.
В настоящее время я собираюсь установить целевую структуру для .NET Framework 3.5. Профиль клиента, чтобы Visual Studio не переопределяла версию. Это обходное решение и означает, что я не могу использовать функции .NET 4.0.
Я прав, предполагая, что в .NET Framework есть либо ошибка, либо каждый редактор .resx (включая Microsoft).
Edit 2: Оказалось, что, когда я пытался использовать инструмент Winres.exe Microsoft, я был на самом деле запуска .NET Framework версии 3.5, так как версия .NET Framework 4.0 не устанавливается.
Мне пришлось установить SDK .NET Framework 4.0 с http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe, и тогда я смог редактировать файлы .resx с помощью WinRes.exe 4.0
Вы сделали «PublicKeyToken = REMOVED» ИЛИ это точное сообщение об ошибке? Также там написано неправильно. – leppie
Это я набираю его. Я отредактирую его и добавлю обратно. Никакого вреда для открытого ключа, который я предполагаю. –
@Blair McMillan: Не ваше anyways :) – leppie