我正在尝试在MSBuild脚本中构建一个ItemGroup,该脚本包含直接位于给定"Root"文件夹下的文件夹列表.所以 - 在这个例子中......
+ Root folder
---- Sub Folder 1
-------- Sub-Sub Folder 1
-------- Sub-Sub Folder 2
---- Sub Folder 2
---- Sub Folder 3
Run Code Online (Sandbox Code Playgroud)
...我希望我的ItemGroup包含"子文件夹1","子文件夹2"和"子文件夹3".
层次结构中的任何位置都可能有许多文件,但我只对文件夹感兴趣.
任何人都可以帮忙!?
我有一个单独的数据库项目,我想在同一个解决方案中构建它,然后引用创建的 dacpac。当我尝试添加数据库项目时,它构建得很好,并且 dll 被添加到辅助项目文件中,但 dacpac 不是。
有没有办法通过 msbuild 将 dacpac 复制到我的主项目中?我一直在想,应该有一种方法可以修改 sqlproj 文件或 csproj 文件,以便将 dacpac 作为项目输出之一包含在内。我对 msbuild 的了解并不广泛,我一直无法弄清楚。
在我看来,我需要以某种方式添加 dacpac 来说出“@(ReferenceCopyLocalPaths)”项目,但我一直无法弄清楚。任何提示或建议将不胜感激。
我尝试做一些类似于这里引用的事情MSBuild - ItemGroup of all bin directory of all 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>
Run Code Online (Sandbox Code Playgroud)
这对 DacPacs 没有任何帮助(添加通配符时)。我还尝试从 sqlproj 文件中引用项目组之一,但结果为空: