3

我正在编写一个可以在 Visual Studio 中创建 SQL 文件的应用程序。用户将通过包管理器控制台输入命令,该控制台将生成 sql 脚本并将它们存放在 Visual Studio 项目中的特定目录中。

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

我已经看到了类似问题的各种解决方案,主要是对 .csproj 文件的修改,例如

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

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

我应该证明在文件的创建过程中没有巫术,只是简单的旧 File.Create() 东西。

我愿意接受任何建议。

谢谢。

4

2 回答 2

6

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

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

<Target Name="BeforeBuild">
    <ItemGroup>
        <Content Include="Sql\**\*.sql" />
    </ItemGroup>
</Target>
于 2013-01-23T20:48:24.190 回答
0

恕我直言,T4 是要走的路。您不想为您正在尝试做的事情而为旧技术而烦恼。

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

于 2012-09-09T19:12:13.703 回答