提问人:Raphael Schmitz 提问时间:11/12/2023 最后编辑:Raphael Schmitz 更新时间:11/13/2023 访问量:37
将引用项目中的文件夹作为 MauiAssets 包含在内
Include folder in referenced project as MauiAssets
问:
目标
我有一个 MAUI 项目,它引用了一个(非 MAUI)“核心”库项目。
核心项目是该框架的用户(大部分)工作的地方。
我想在 MAUI 应用中包含核心项目中的文件。
研究
对于其他平台项目(例如 linux 桌面),这很容易,因为 dotnet 可以简单地从核心项目中复制文件。这甚至可以递归地适用于核心项目引用的项目。
但是,在 MAUI 中,我知道出于交叉兼容性的原因,这些文件的构建操作需要为 .这可以手动完成,也可以将它们放在文件夹下,这会自动为所有文件执行此操作。MauiAsset
Resources\Raw
我看到 MAUI 项目尽职尽责地将文件从核心项目的 OutDir 复制到自己的文件。我试图通过msbuild目标将东西从那里复制到那里。但是,我找不到要挂接到的正确构建目标,并且我怀疑这些文件在此过程中复制得太晚(= 在 MAUI 进程之后)。$(ProjectDir)\Resources\Raw
Resources\Raw
我还注意到,与其他平台相比,MAUI 构建需要相当长的时间,因此我不想将核心项目设为 MAUI 库。
问题
如何将此类“核心”项目中的文件包含在 MAUI 项目中,以便为处理该核心项目的框架用户提供尽可能简单的方式?
答:
0赞
Raphael Schmitz
11/13/2023
#1
虽然没有其他答案,但我在这里发布了我目前正在使用的内容。
我有一个构建步骤
<Target Name="PrepareFiles" AfterTargets="BeforeBuild">
在核心项目中,将所有文件收集到 gitignored 文件夹中。$(ProjectDir)\_assets
然后,MAUI 项目包含来自其他项目的这些文件:
<ItemGroup>
<MauiAsset Include="..\CoreProject\_assets\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
</ItemGroup>
这种方法的缺点是
- 如果重命名,硬编码的引用将中断
..\CoreProject
- 它不包括递归文件(来自核心项目引用的项目)。
评论