Вопрос

Таким образом, у меня есть CONDASSEMBLYINFO.cs, связанные со всеми проектами в моем решении и динамически генерируются моими сценариями Rake / Albacore, которые не проверяются в контроль источника.

У меня также есть CONCRASSEMBLYINFO.CS.LOCAL для использования, когда нет в наличии Ruby, в основном для использования Devs.

Можно ли иметь задачу MSBuild или что-то, что запускается до любой другой компиляции проекта, которая будет скопировать CONCRASSEMBLYINFO.cs.local для concasassembyinfo.cs, прежде чем пытаться составить мое решение? Я ненавижу необходимость иметь команду, вы должны просто знать, и введите, чтобы открыть и Buidl Buidl Solution в Visual Studio.

ОБНОВИТЬПоэтому я закончил использовать пакетный файл в качестве решения широкого предварительного создания решения, как описано здесь: Событие в широкое решение для предварительной сборки?, он проверяет, существует ли CONCRASSEMBLYINFO.cs, а если не копирует commanassemblyinfo.cs.local для concasassemblyinfo.cs просто использует простой пакетный файл.

Это было полезно?

Решение

Это решение, с которым я оказался.

У меня есть каждый проект в решении ссылки на CONSULASSEMBLYINFO.cs, который автоматически генерируется для меня моим сценариями сборки (Rake + Albacore).

Поскольку я не могу проверить CONTASSEMBLYINFO.CS в исходное управление, я создаю concasassemblyinfo.cs.local.

Простое решение: создать go.bat, который копирует concasassemblyinfo.cs.local для concasassemblyinfo.cs, что Devs должен работать в первый раз, они проверяют проект перед открытием решения в против

Для чисто Политические причины, если бы у меня это сделали, у этого был бы шис подходит ко мне, делая «нестандартные» вещи. Сложное решение следует:

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

echo verifying CommonVersionInfo.cs exists
cd
IF NOT EXIST ..\..\..\CommonAssemblyInfo.cs COPY ..\..\..\CommonAssemblyInfo.cs.local ..\..\..\CommonAssemblyInfo.cs

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

Другие советы

Вы говорите о компиляции в IDE IDE, или компиляция через сборку? Если вы говорите о сборке Team, вы можете использовать событие «Afterget» в качестве места для использования стандартной задачи MSBuild «Copy». Если вы говорите о VS IDE, то вы все равно можете использовать задачу msbuild "Copy".

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top