Как включить автоматически созданный файл в проект MsBuild?

Используя MsBuild 4.0, я включил событие перед сборкой, которое генерирует один из исходных файлов проекта. Но он ищет файл до его генерации:

ошибка CS1504: исходный файл "c:\src\Data\Main.Designer.cs" не может быть открыт ("ошибка не определена")

Файл генерируется DbMetal/SqlMetal. Есть ли способ сделать эту работу?

1 ответ

Решение

Переместите свое действие в цель BeforeBuild. В проекте *.csproj по умолчанию комментируется. Раскомментируйте его и вызовите DBMetal, используя задачу Exec

<Target Name="BeforeBuild">
    <Exec Command="<your prebuild action 1>"/>
    <Exec Command="<your prebuild action 2>"/>
</Target>

Если вы работаете с Datasource.db и хотите сгенерировать Main.Designer.cs, вы можете указать входные и выходные параметры для цели. Это спасет вас от вызова DBMetal и перестройки самого проекта.

<Target Name="BeforeBuild"
        Inputs="Datasource.db"
        Outputs="Main.Designer.cs">
    <Exec Command="<your prebuild action 1>"/>
    <Exec Command="<your prebuild action 2>"/>
</Target>
Другие вопросы по тегам