自动在Visual Studio Project中包含生成的文件

时间:2012-09-09 18:11:29

标签: c# visual-studio scaffolding

我正在编写一个可以在visual studio中创建SQL文件的应用程序。用户将通过Package Manager控制台输入命令,该控制台将生成sql scrips并将它们存放在Visual Studio Project中的特定目录中。

我遇到的问题是,生成文件时,它们存在于文件系统中,但不存在于Visual Studio中。当然,这是预期的,因为我需要在解决方案资源管理器中主动包含文件,但这不是我想要的。我希望文件在生成后立即“神奇地”出现在解决方案资源管理器中。

我见过类似问题的各种解决方案,主要是修改.csproj文件,例如

<Compile Include="Sql\**\*.sql" />

但这不是我想要的。我所追求的是类似于实体框架或MvcScaffolding工作的方式,当文件/文件夹在PMC中运行时,文件/文件夹就会神奇地落入项目中。我知道这会影响T4模板化,但对于像这样的简单问题来说,这似乎太复杂了。

我应该确定在创建文件时没有伏都教,只是简单的旧File.Create()东西。

我愿意接受任何建议。

感谢。

2 个答案:

答案 0 :(得分:6)

查看this答案,了解对我有用的解决方案。我有相同的用例,其中代码输出平面文件,我需要在项目中包含此输出。

在.csproj文件的末尾添加以下内容:

<Target Name="BeforeBuild">
    <ItemGroup>
        <Content Include="Sql\**\*.sql" />
    </ItemGroup>
</Target>

答案 1 :(得分:0)

恕我直言,T4是要走的路。您不想因为{I}尝试做什么而烦恼older technologies

话虽如此,我想知道为什么要将文件添加到解决方案资源管理器中?它是用于源控制目的吗? (通常您不希望源控制自动生成的文件,您希望源控制原始模型)。 请注意,您始终可以单击“全部显示”按钮,文件将显示在解决方案资源管理器中,而不会实际成为解决方案的一部分。

相关问题