c# – 如何将创建的数据库项目包含在cs项目中创建dacpac
发布时间:2020-12-15 22:01:23 所属栏目:百科 来源:网络整理
导读:我有一个单独的数据库项目,我想在同一个解决方案中构建,然后引用创建的dacpac.当我尝试添加数据库项目时,它构建正常,并且dll被添加到辅助项目文件,但dacpac不是. 有没有办法让dacpac通过msbuild复制到我的主项目中?我一直认为应该有一种方法来修改sqlproj文
我有一个单独的数据库项目,我想在同一个解决方案中构建,然后引用创建的dacpac.当我尝试添加数据库项目时,它构建正常,并且dll被添加到辅助项目文件,但dacpac不是.
有没有办法让dacpac通过msbuild复制到我的主项目中?我一直认为应该有一种方法来修改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文件的副本.
或者你可以在csproj中添加它: <PropertyGroup> <PreBuildEvent>copy "$(SolutionDir)DatabaseProjectbin$(ConfigurationName)DatabaseProject.dacpac" "$(ProjectDir)DatabaseProject.dacpac"</PreBuildEvent> </PropertyGroup> 这仅在首先构建数据库项目时才有效,因此您应该添加依赖项.右键解决方案并选择Project Dependencies …,然后选择主项目并检查它是否依赖于Database项目. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |