У меня довольно простая форма, которую я хочу локализовать (у меня на самом деле немало в этом проекте, у них у всех одна и та же проблема).Когда я устанавливаю для свойства формы Localizable
значение true, Visual Studio создает файл .resx
с именем формы (как и следовало ожидать).Однако проблема в том, что он добавляет в файл .resx все виды вещей, которые больше ничего не может открыть (например, WinRes, ResEx, Simple Resx Editor, RESX Editor и т. Д.).
Я получаю ошибку:
Файл ResX Тип System.Drawing.Point, System.Drawing, Версия = 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, выдается указанная выше ошибка.
Единственные установленные мной расширения (в соответствии с менеджером расширений):
- Подсветить все вхождения выбранного слова
- Лента Microsoft для WPF (которую я не использую в этом проекте)
Диспетчер надстроек не показывает надстроек.
Редактировать:
После копания и ручного редактирования файла .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
.
. На данный момент я собираюсь установить для Target Framework значение .NET Framework 3.5.Профиль клиента , чтобы Visual Studio не переопределял версию.Это обходной путь и означает, что я не могу использовать функции .NET 4.0.
Правильно ли я догадываюсь, что есть ошибка в .NET Framework или в каждом отдельном редакторе .resx (включая Microsoft?).).
Редактировать 2: Оказалось, что когда я пытался использовать инструмент Microsoft WinRes.exe, я фактически запускал версию .NET Framework 3.5, начиная с версии .NET Framework 4.0не устанавливается.
Мне пришлось установить .NET Framework 4.0 SDK из http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/winsdk_web.exe, и затем я смог редактировать файлы .resx с помощью WinRes.exe 4.0