Кастомная сборка для VS2010 - PullRequest
1 голос
/ 05 января 2011

Мне нужно скомпилировать некоторые файлы в моем решении с помощью компилятора внешней командной строки и передать его выходные данные (файлы cs) на вход компилятора C #, чтобы он встроил их в результирующую сборку.Предложите подходы для решения этой задачи.

Ответы [ 2 ]

1 голос
/ 05 января 2011

Я сталкивался с этой же проблемой раньше. Самое простое, что нужно сделать - включить выходные файлы в ваш проект и вызвать генератор из параметра командной строки события перед сборкой. Есть много проблем с этой техникой, она разрушает интегрированный контроль исходного кода, и если ваш генератор создает файлы динамически, он не будет работать. Есть способы обойти это, сравнить файлы из генератора перед тем, как их перезаписать, так что только изменения приводят к перезаписи, и объединить файлы в один .cs с известным файлом имени, например. ИМХО, ни одно из них не забавное и не забавное.

Я бы рекомендовал, если это вообще возможно, использовать T4 для этого. Вы не говорите, является ли внешний генератор вашим или нет, но если это так, его не должно быть слишком сложно конвертировать. Он намного чище, понятнее и проще в обслуживании Т4, чем внешне связанный инструмент.

1 голос
/ 05 января 2011

Вы можете использовать Project -> Settings -> Build Events -> Pre-build event, чтобы сгенерировать ваш CS-файл, а затем просто убедиться, что ваш CS-файл включен в ваш проект, и он должен прекрасно работать.

...