我想让从其他项目构建的dll文件成为Xamarin Android项目中的资产文件。例如,我有一个项目,它是一个Xamarin Android项目。而且我有B和C项目,它们将被构建并生成dll文件。B和C完成他们的构建过程后,我希望他们的dll文件被复制到“A”项目的assets文件夹中,并将这些dll文件作为android资产。有没有办法达到这个要求?谢谢!
hzbexzde1#
我找到解决办法了。对于B和C项目,应在构建后事件中添加,如:
<Target Name="PostBuild" AfterTargets="PostBuildEvent"> <Exec Command="xcopy /q /y "$(TargetDir)$(AssemblyName).dll" "$(SolutionDir)\A\Assets"" /> </Target>
并且还需要在PropertyGroup中添加<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>然后在B和C完成他们的建设,他们的dll文件将被复制到资产文件夹的A。在A项目中,还应添加构建后事件和资产文件夹的设置。
PropertyGroup
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
<ItemGroup> <!-- I use Avalonia here. Change to AndroidAsset in Maui or Xamarin--> <AvaloniaResource Include="Assets\**" /> </ItemGroup> . . . <Target Name="PostBuild" BeforeTargets="PostBuildEvent"> <Exec Command="del "$(ProjectDir)Assets\*.dll" /q" /> </Target>
生成后事件将在生成完成后移除dll文件。
1条答案
按热度按时间hzbexzde1#
我找到解决办法了。
对于B和C项目,应在构建后事件中添加,如:
并且还需要在
PropertyGroup
中添加<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
然后在B和C完成他们的建设,他们的dll文件将被复制到资产文件夹的A。
在A项目中,还应添加构建后事件和资产文件夹的设置。
生成后事件将在生成完成后移除dll文件。