Как включить генерацию кода в решение C #? - PullRequest
1 голос
/ 12 апреля 2009

( Этот вопрос довольно похож, но, похоже, единственный ответ не отвечает моим потребностям).

Я думаю об использовании Thrift в C # и обдумываю, как именно будет работать процесс сборки. Поддерживают ли проекты C # в Visual Studio 2008 настраиваемые действия сборки, которые генерируют классы C #?

Я нашел опцию "Custom Tool", но я не уверен, что это то, что я ищу ... он позволяет использовать только время разработки (не является неотъемлемой частью процесса сборки, а скорее щелкнуть правой кнопкой мыши "Run Пользовательский инструмент ").

Обновление

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

Ответы [ 3 ]

2 голосов
/ 12 апреля 2009

Что, если вы просто поместите генерацию кода в события перед сборкой.

Они находятся в разделе «События сборки» свойств проекта в Visual Studio.

Также они поддерживают некоторые макросы, которые вы увидите, если нажмете кнопку «Изменить предварительную сборку ...».

1 голос
/ 15 апреля 2009

Самый простой и безопасный вариант - включить генерацию в «Pre Build Events», как упоминает Фионн. Плюсы: код всегда корректен, Минусы: медленно, так как это будет означать, что при каждой компиляции вы заново генерируете исходный код, а затем перестраиваете все зависимости, как сгенерированный код как измененный.

Другим вариантом является ручная регенерация файлов кода, и, если у вас есть машина сборки / непрерывная интеграция, перестраивайте файлы кода каждую сборку. Плюсы: более быстрая сборка, если есть несколько изменений. Минусы: устаревший сгенерированный код и часы ненужной отладки, пытаясь решить, что не так.

Читая справку по проекту C #, кажется, что вам нужен плагин, который обеспечивает действие Custom Tool, которое вы хотите. Но в проектах C ++ вы можете определить свой собственный шаг MS-Help . Таким образом, вы можете разработать плагин VisualStudio (или найти его) или добавить проект C ++ в свое решение, добавить пользовательский шаг сборки в этот проект и затем включить выходные данные в обычный проект C #.

Первый гугл для ' кода Visual Studio для пользовательских инструментов gen ' содержит инструкции по написанию собственного пользовательского инструмента , который будет хорошей отправной точкой.

0 голосов
/ 12 апреля 2009

MS Build легко настраивается. Visual Studio сама по себе также очень расширяемая . Вы можете использовать CodeDOM для создания классов. В зависимости от того, сколько времени вы хотите потратить на настройку VS и процесс сборки, вы мало что можете сделать.

...