|
|
|
@ -7,36 +7,45 @@
|
|
|
|
|
Warning: We ONLY support facades that reside directly in MonoFacadesPath, otherwise the joining of items becomes complicated.
|
|
|
|
|
|
|
|
|
|
Any MonoFacade listed that doesn't exist on disk will be removed instead of replaced.
|
|
|
|
|
|
|
|
|
|
See: https://github.com/mono/mono/blob/master/tools/nuget-hash-extractor/download.sh
|
|
|
|
|
That list defines assemblies that are prohibited from being loaded from the appdir, instead loading from mono GAC.
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
<PropertyGroup>
|
|
|
|
|
<MonoFacadesPath>$(MSBuildThisFileDirectory)Libraries\Mono\</MonoFacadesPath>
|
|
|
|
|
<ResolveReferencesDependsOn>
|
|
|
|
|
$(ResolveReferencesDependsOn);
|
|
|
|
|
SubstituteMonoFacadesBuild
|
|
|
|
|
</ResolveReferencesDependsOn>
|
|
|
|
|
</PropertyGroup>
|
|
|
|
|
|
|
|
|
|
<ItemGroup>
|
|
|
|
|
<MonoFacade Include="$(MonoFacadesPath)*.dll" />
|
|
|
|
|
<MonoFacade Include="System.IO.Compression.dll" />
|
|
|
|
|
<MonoFacade Include="System.Net.Http.dll" />
|
|
|
|
|
|
|
|
|
|
<!-- List of MonoFacade by FileName -->
|
|
|
|
|
<MonoFacade_Facade Include="@(MonoFacade->'%(Filename)%(Extension)')" />
|
|
|
|
|
</ItemGroup>
|
|
|
|
|
|
|
|
|
|
<Target Name="SubstituteMonoFacades"
|
|
|
|
|
AfterTargets="ComputeFilesToPublish"
|
|
|
|
|
BeforeTargets="CopyFilesToPublishDirectory">
|
|
|
|
|
|
|
|
|
|
<ItemGroup>
|
|
|
|
|
<!-- List of MonoFacade by FileName -->
|
|
|
|
|
<MonoFacade_Facade Include="@(MonoFacade->'%(Filename)%(Extension)')" />
|
|
|
|
|
<Target Name="SubstituteMonoFacadesBuild"
|
|
|
|
|
AfterTargets="ResolveAssemblyReferences"
|
|
|
|
|
BeforeTargets="GenerateBindingRedirects">
|
|
|
|
|
|
|
|
|
|
<!-- List of ResolvedFileToPublish by FileName and filter out those without Facades -->
|
|
|
|
|
<MonoFacade_Resolved Include="@(ResolvedFileToPublish->'%(Filename)%(Extension)')">
|
|
|
|
|
<OriginalIdentity>%(ResolvedFileToPublish.Identity)</OriginalIdentity>
|
|
|
|
|
<ItemGroup>
|
|
|
|
|
<!-- List of ReferenceCopyLocalPaths by FileName and filter out those without Facades -->
|
|
|
|
|
<MonoFacade_Resolved Include="@(ReferenceCopyLocalPaths->'%(Filename)%(Extension)')">
|
|
|
|
|
<OriginalIdentity>%(ReferenceCopyLocalPaths.Identity)</OriginalIdentity>
|
|
|
|
|
<MonoFacadeIdentity>$(MonoFacadesPath)%(Filename)%(Extension)</MonoFacadeIdentity>
|
|
|
|
|
</MonoFacade_Resolved>
|
|
|
|
|
<MonoFacade_Unrelated Include="@(MonoFacade_Resolved)" />
|
|
|
|
|
<MonoFacade_Unrelated Remove="@(MonoFacade_Facade)" />
|
|
|
|
|
<MonoFacade_Resolved Remove="@(MonoFacade_Unrelated)" />
|
|
|
|
|
|
|
|
|
|
<!-- Modify the actual Publish list -->
|
|
|
|
|
<ResolvedFileToPublish Remove="@(MonoFacade_Resolved->'%(OriginalIdentity)')" />
|
|
|
|
|
<ResolvedFileToPublish Include="@(MonoFacade_Resolved->'%(MonoFacadeIdentity)')" Condition="Exists('%(MonoFacade_Resolved.MonoFacadeIdentity)')" />
|
|
|
|
|
<!-- Modify the actual copy list -->
|
|
|
|
|
<ReferenceCopyLocalPaths Remove="@(MonoFacade_Resolved->'%(OriginalIdentity)')" />
|
|
|
|
|
<ReferenceCopyLocalPaths Include="@(MonoFacade_Resolved->'%(MonoFacadeIdentity)')" Condition="Exists('%(MonoFacade_Resolved.MonoFacadeIdentity)')" />
|
|
|
|
|
</ItemGroup>
|
|
|
|
|
</Target>
|
|
|
|
|
|
|
|
|
|