Использовать XML-файл в качестве ресурса для решения Visual Studio

#c# #xml #resources

#c# #xml #Ресурсы

Вопрос:

Я запутался при использовании файлов ресурсов. В моем приложении мне нужно сохранить некоторые распространенные расширения файлов. Поскольку их много, я создал XML-файл, который выглядит примерно так:

 <?xml version="1.0" encoding="utf-8" ?>

<Files>
<File>
    <Signature>3026B2758E66CF11A6D900AA0062CE6C</Signature>
    <Extension>WMA|WMV|ASF</Extension>
    <Description>WindowsMediaFile</Description>
  </File>            
  <File>
    <Signature>0000000020000000FFFF0000FFFF</Signature>
    <Extension>RES</Extension>
    <Description>ResourceFile</Description>
  </File>
  <File>
<Signature>64383A616E6E6F756E6365</Signature>
<Extension>TORRENT</Extension>
<Description>BitTorrentMetainfoFile</Description>
  </File>
..... etc
..... etc
......
  

Я мог бы использовать файл .setting вместо этого, но я думаю, что это будет не так эффективно.

В любом случае я знаю, как извлечь данные из этого файла. проблемы возникают, когда я планирую использовать это приложение на другом компьютере.

Я могу прочитать данные из этого XML-файла, указав путь: A:UsersTonoDesktop……FileSignatures.xml

но какой путь мне нужно будет использовать, чтобы он работал при развертывании этого приложения. Я знаю, что могу поместить этот файл в каталог bin, а затем использовать относительный путь. также, когда я выбираю файл в Visual Studio, у меня есть опция:

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

Если мне нужен этот файл, должен ли я скопировать этот файл в выходной каталог, чтобы я мог использовать его при развертывании на другом компьютере?

Я знаю, что, вероятно, смогу решить эту проблему, но я просто хочу убедиться, что я делаю это правильно. Я мог бы решить эту проблему, но я не понимаю, как это работает.

Ответ №1:

В общем, старайтесь избегать добавления дополнительных файлов в ваш установочный набор. Если файл данных всегда будет доступен только для чтения, сделайте его ресурсом и свяжите с исполняемым файлом, чтобы исключить вероятность его потери.

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

В VS2010 щелкните правой кнопкой мыши на вашем проекте и выберите Добавить .., затем выберите Новый элемент и выберите Файл ресурсов. Дважды щелкните созданный файл Resource1.resx, чтобы вызвать редактор ресурсов. В меню в верхней части редактора ресурсов выберите Добавить ресурс, затем добавить существующий файл и выберите существующий XML-файл на диске. Это скопирует XML-файл в подкаталог ресурсов вашего проекта и свяжет файл с вашим исполняемым файлом во время компиляции. Вы можете получить доступ к этим данным в виде строки через сгенерированный класс Resource1.

Комментарии:

1. ResourceManager Менеджер ресурсов = новый менеджер ресурсов («Имяпроекта. Свойства. Ресурсы», сборка. GetExecutingAssembly()); строка yourResourceAsString = ResourceManager. getString(«YourResourceStringID», CultureInfo. InvariantCulture);//Получить строку ресурса

Ответ №2:

Есть два варианта использования ресурсов, первый — встроить его.dll/.exe файл, и это то, что вы сделали, и второе — установить «Копировать в выходную папку» либо «Всегда», либо «При изменении» (второе может быть неправильным, но вы можете понять суть)