Внедрить содержимое из внешнего файла при компиляции - PullRequest
0 голосов
/ 30 июля 2009

Есть ли способ в Visual Studio (любой версии) встроить содержимое файла в другой файл при компиляции? Например, если кто-то хочет встроить файл XML в файл кода VB, как это лучше всего сделать?

Ответы [ 6 ]

2 голосов
/ 30 июля 2009

Добавьте файл в ваш проект, щелкните правой кнопкой мыши по файлу и выберите его свойства. В разделе «Build Action» измените его на «Embedded Resource». Теперь при компиляции файл автоматически внедряется как ресурс.

Вот пример, показывающий, как получить доступ к встроенному растровому ресурсу .

1 голос
/ 30 июля 2009

Посмотрите на Ресурсы . Вы можете создать строковый ресурс с вашим xml. Затем он компилируется в образ вашего приложения.

Брайан опередил меня по поводу встроенного ресурса, когда я искал URL ресурса:)

0 голосов
/ 30 июля 2009

В прошлом я писал простой файл .bat, который объединяет 3 различных источника в окончательный исходный файл, который фактически компилируется. Файл .bat запускается как часть события Pre-Build.

Проект

  • SourceTop.vb
  • Source.xml
  • SourceBottom.vb

Все эти файлы имеют действие «Нет»

  • Merged.vb

merge.bat

type SourceTop.vb> Merged.vb введите Source.xml >> Merged.vb Тип SourceBottom.vb >> Merged.vb

0 голосов
/ 30 июля 2009

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

Я искал и нашел еще одну вещь, называемую Custom Tools, которая может воздействовать на файл, существующий в вашем решении, и может использоваться для генерации файла кода.

Посмотрите, поможет ли эта ссылка вообще - http://www.drewnoakes.com/snippets/WritingACustomCodeGeneratorToolForVisualStudio/

0 голосов
/ 30 июля 2009

Я собирался упомянуть использование директивы препроцессора #include (для C и C ++), но затем вы упомянули VB. Я не думаю, что VB поддерживает такую ​​вещь.

0 голосов
/ 30 июля 2009

Если вы не возражаете против того, чтобы это было в вашем коде, вы можете использовать XML Literal .

...