我有一个单独的数据库项目,我想在同一个解决方案中构建它,然后引用创建的 dacpac。当我尝试添加数据库项目时,它构建得很好,并且 dll 被添加到辅助项目文件中,但 dacpac 不是。
有没有办法可以通过 msbuild 将 dacpac 复制到我的主项目中?我一直认为应该有一种方法可以修改 sqlproj 文件或 csproj 文件,以便将 dacpac 作为项目输出之一包含在内。我对 msbuild 的了解并不广泛,我一直无法弄清楚。
在我看来,我需要以某种方式添加 dacpac 以说出“@(ReferenceCopyLocalPaths)”项目,但我无法弄清楚。任何提示或建议将不胜感激。
我尝试做一些类似于此处引用的MSBuild - ItemGroup of all bin 目录在子目录中的操作:
<Target Name="AfterBuild">
<Message Text="@(MainAssembly)" />
<!--<DacPacs Include="%(ProjectReference.Directory)**" />-->
<ItemGroup>
<DacPacs Include="%(ProjectReference.Directory)**/*bin*/*.dac" />
</ItemGroup>
<Message Text="@(ReferenceCopyLocalPaths)" />
<Message Text="DacPacs: @(DacPacs)" />
<Message Text="Target Database: $(TargetDatabase)" />
</Target>
这对 DacPacs 没有任何帮助(添加通配符时)。我还尝试从 sqlproj 文件中引用其中一个项目组,但结果为空: