Как включить автоматически созданный файл в проект 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>