gpt4 book ai didi

c# - 如何将创建的数据库项目created dacpac包含到cs项目中

转载 作者:行者123 更新时间:2023-11-30 12:46:01 25 4
gpt4 key购买 nike

我有一个单独的数据库项目,我想在同一个解决方案中构建它,然后引用创建的 dacpac。当我尝试添加数据库项目时,它构建良好并且 dll 被添加到辅助项目文件,但 dacpac 没有。

有没有办法通过 msbuild 将 dacpac 复制到我的主项目中?我一直认为应该有一种方法可以修改 sqlproj 文件或 csproj 文件,以便将 dacpac 作为项目输出之一包含在内。我对 msbuild 的了解并不广泛,我一直无法弄清楚。

在我看来,我需要以某种方式添加 dacpac 以显示“@(ReferenceCopyLocalPaths)”项,但我无法弄清楚。如有任何提示或建议,我们将不胜感激。

我尝试做一些类似于这里引用的事情 MSBuild - ItemGroup of all bin directories within subdirectories通过做:

   <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 文件的副本。

Pre-build event to copy dacpac

或者您可以将其添加到 csproj 中:

<PropertyGroup>
<PreBuildEvent>copy "$(SolutionDir)DatabaseProject\bin\$(ConfigurationName)\DatabaseProject.dacpac" "$(ProjectDir)\DatabaseProject.dacpac"</PreBuildEvent>
</PropertyGroup>

这只有在首先构建数据库项目时才有效,因此您应该添加一个依赖项。右键单击解决方案并选择 Project Dependencies...,然后选择主项目并检查它是否依赖于数据库项目。

enter image description here

关于c# - 如何将创建的数据库项目created dacpac包含到cs项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21668184/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com