2012-06-26 2 views
0

У меня есть несколько часто изменяемых полей, хранящихся в Resource.resx, который автоматически создает файл Resources.designer.cs. У него есть адреса электронной почты, пути к местоположению, которые должны быть обновлены в соответствии с потребностями.Возможно ли восстановить файл designer.cs без Visual Studio?

Теперь я хотел бы сделать приложение пригодным для использования даже для не разработчика. Даже простой человек должен иметь возможность редактировать адрес электронной почты & Пути.

Считается, что если кто-то редактирует файл .resx (который легко редактируется даже в блокноте), могу ли я написать некоторый .exe-код для автоматического создания соответствующего конструктора.cs для него?

Спасибо за понимание ..

+0

любого кода, который может читать файл ресурсов (.resx) и обновить файл соответствующего designer.cs? –

ответ

0

Если визуальная студия может сделать это, вы можете сделать это. Но я думаю, что позволить нетехническому человеку редактировать xml-файл требует неприятностей. Я бы сделал небольшой инструмент редактирования, который вытягивает только те поля, которые вы хотите изменить, отображает их в простой форме для изменения, а затем записывает их обратно в resx перед перестройкой конструктора.

Я сделал что-то похожее на это для редактирования файла application.exe.config, так что конфигурации могут быть изменены без опасности (даже технический человек), убивающий вещь с помощью опечатки, что слишком легко.

+0

У вас есть код, который может читать файл ресурсов (.resx) и обновлять соответствующий файл designer.cs? –

0

Вы можете использовать что-то вроде

private void ReadResxFile(string filename) 
    { 
     if (System.IO.File.Exists(filename)) 
     { 
      using (ResXResourceReader reader = new ResXResourceReader(filename)) 
      { 
       //TODO 
      } 
     } 
    } 
    public void SaveResxAs(string fileName, string key, string value) 
    { 
     try 
     { 
      using (ResXResourceWriter writer = new ResXResourceWriter(fileName)) 
      { 
       writer.AddResource(key, value); 
       writer.Generate(); 
      } 
     } 
     catch (Exception error) 
     { 
      throw error; 
     } 
    }