在我的Post Deployment Script中,我想使用这样的通配符将所有脚本文件包含在一个文件夹中: :r。\ $(ReleaseName)\ * .sql
有办法做到这一点吗?我找不到任何......
答案 0 :(得分:2)
我得到了它的工作:
<MyFilesPath Include="$(ProjectDir)MyPath\*.sql"/>
<MyFiles Include="@(MyFilesPath->':r %22..\Scripts\%(filename)%(extension)%22%0D%0A', '')"/>
然后我将@MyFiles包含在我的PostScript文件中。
答案 1 :(得分:1)
我采用了一种更容易让我理解的方法。
我只是将代码添加到数据库项目属性页面中的Pre-build事件中,该页面将脚本文件复制到单个文件中。我调用bat
文件并将项目路径作为参数传递,因为编辑文件比尝试在属性页中的那个小文本框中编辑要好得多。
$(ProjectDir)PreBuildEvent.bat "$(ProjectDir)"
我将bat
的内容设置为:
copy %ProjectDir%DbUpdateScripts\*-Pre.sql %ProjectDir%DbUpdateScripts\AllPreScripts.sql
copy %ProjectDir%DbUpdateScripts\*-Post.sql %ProjectDir%DbUpdateScripts\AllPostScripts.sql
然后只需在实际的部署前和部署后脚本中包含这些文件。
:r .\DbUpdateScripts\AllPreScripts.sql
:r .\DbUpdateScripts\AllPostScripts.sql
最后,如果您有AllPreScripts.sql
文件,请将AllPostScripts.sql
和.gitignore
添加到{{1}}文件中,以防止它们被添加到源代码管理中。