我有一个单独的数据库项目,我想在同一解决方案中构建该项目,然后引用创建的 dacpac。当我尝试添加数据库项目时,它构建得很好,并且 dll 被添加到辅助项目文件中,但 dacpac 却没有。
有没有办法可以通过 msbuild 将 dacpac 复制到我的主项目中?我一直认为应该有一种方法可以修改 sqlproj 文件或 csproj 文件,以便将 dacpac 作为项目输出之一包含在内。我对msbuild的了解并不广泛,我一直无法弄清楚。
在我看来,我需要以某种方式添加 dacpac 来表示“@(ReferenceCopyLocalPaths)”项目,但我无法弄清楚。任何提示或建议将不胜感激。
我尝试做一些类似于这里引用的事情MSBuild - 子目录中所有 bin 目录的 ItemGroup通过做:
<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 文件中的项目组之一,但结果为空:
在项目属性中,您可以添加预构建事件命令行来获取 dacpac 文件的副本。
或者您可以将其添加到 csproj 中:
<PropertyGroup>
<PreBuildEvent>copy "$(SolutionDir)DatabaseProject\bin\$(ConfigurationName)\DatabaseProject.dacpac" "$(ProjectDir)\DatabaseProject.dacpac"</PreBuildEvent>
</PropertyGroup>
仅当首先构建数据库项目时,这才有效,因此您应该添加依赖项。右键单击解决方案并选择Project Dependencies...
,然后选择主项目并检查它是否依赖于数据库项目。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)