如何在MsBuild项目中包含自动生成的文件?

时间:2011-02-09 15:10:30

标签: .net visual-studio-2010 msbuild sqlmetal dblinq

使用MsBuild 4.0我包含了一个预生成事件,该事件生成一个项目源文件。 但它在生成文件之前会寻找文件:

  

错误CS1504:无法打开源文件'c:\ src \ Data \ Main.Designer.cs'('未指定错误')

该文件由DbMetal / SqlMetal生成。 有没有办法让这项工作?

1 个答案:

答案 0 :(得分:4)

将您的操作移至BeforeBuild目标。在项目* .csproj中默认评论。 取消注释并使用Exec task

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

如果您正在使用 Datasource.db 并想要生成 Main.Designer.cs 您可以为目标指定Input and Output parameters。它将节省您调用DBMetal并重建项目本身。

<Target Name="BeforeBuild"
        Inputs="Datasource.db"
        Outputs="Main.Designer.cs">
    <Exec Command="<your prebuild action 1>"/>
    <Exec Command="<your prebuild action 2>"/>
</Target>