我正在编写一个可以在visual studio中创建SQL文件的应用程序。用户将通过Package Manager控制台输入命令,该控制台将生成sql scrips并将它们存放在Visual Studio Project中的特定目录中。
我遇到的问题是,生成文件时,它们存在于文件系统中,但不存在于Visual Studio中。当然,这是预期的,因为我需要在解决方案资源管理器中主动包含文件,但这不是我想要的。我希望文件在生成后立即“神奇地”出现在解决方案资源管理器中。
我见过类似问题的各种解决方案,主要是修改.csproj文件,例如
<Compile Include="Sql\**\*.sql" />
但这不是我想要的。我所追求的是类似于实体框架或MvcScaffolding工作的方式,当文件/文件夹在PMC中运行时,文件/文件夹就会神奇地落入项目中。我知道这会影响T4模板化,但对于像这样的简单问题来说,这似乎太复杂了。
我应该确定在创建文件时没有伏都教,只是简单的旧File.Create()东西。
我愿意接受任何建议。
感谢。
答案 0 :(得分:6)
查看this答案,了解对我有用的解决方案。我有相同的用例,其中代码输出平面文件,我需要在项目中包含此输出。
在.csproj文件的末尾添加以下内容:
<Target Name="BeforeBuild">
<ItemGroup>
<Content Include="Sql\**\*.sql" />
</ItemGroup>
</Target>
答案 1 :(得分:0)
恕我直言,T4是要走的路。您不想因为{I}尝试做什么而烦恼older technologies。
话虽如此,我想知道为什么要将文件添加到解决方案资源管理器中?它是用于源控制目的吗? (通常您不希望源控制自动生成的文件,您希望源控制原始模型)。 请注意,您始终可以单击“全部显示”按钮,文件将显示在解决方案资源管理器中,而不会实际成为解决方案的一部分。