diff --git a/src/linker/Linker.Steps/BlacklistStep.cs b/src/linker/Linker.Steps/BlacklistStep.cs index 3905c0ff4438..89b7429dea65 100644 --- a/src/linker/Linker.Steps/BlacklistStep.cs +++ b/src/linker/Linker.Steps/BlacklistStep.cs @@ -93,6 +93,7 @@ bool ShouldProcessAssemblyResource (string name) case AssemblyAction.Link: case AssemblyAction.AddBypassNGen: case AssemblyAction.AddBypassNGenUsed: + case AssemblyAction.Copy: return true; default: return false; diff --git a/test/Mono.Linker.Tests.Cases/LinkXml/Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/CopyLibrary.cs b/test/Mono.Linker.Tests.Cases/LinkXml/Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/CopyLibrary.cs new file mode 100644 index 000000000000..0f7fda126a6c --- /dev/null +++ b/test/Mono.Linker.Tests.Cases/LinkXml/Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/CopyLibrary.cs @@ -0,0 +1,10 @@ +using System; + +namespace Mono.Linker.Tests.Cases.LinkXml.Dependencies.EmbeddedLinkXmlFromCopyAssemblyIsProcessed +{ + public class CopyLibrary { + public void Method () + { + } + } +} \ No newline at end of file diff --git a/test/Mono.Linker.Tests.Cases/LinkXml/Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/CopyLibrary.xml b/test/Mono.Linker.Tests.Cases/LinkXml/Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/CopyLibrary.xml new file mode 100644 index 000000000000..fc96b13c6920 --- /dev/null +++ b/test/Mono.Linker.Tests.Cases/LinkXml/Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/CopyLibrary.xml @@ -0,0 +1,3 @@ + + + diff --git a/test/Mono.Linker.Tests.Cases/LinkXml/Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/OtherLibrary.cs b/test/Mono.Linker.Tests.Cases/LinkXml/Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/OtherLibrary.cs new file mode 100644 index 000000000000..24f59a2d39f7 --- /dev/null +++ b/test/Mono.Linker.Tests.Cases/LinkXml/Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/OtherLibrary.cs @@ -0,0 +1,10 @@ +using System; + +namespace Mono.Linker.Tests.Cases.LinkXml.Dependencies.EmbeddedLinkXmlFromCopyAssemblyIsProcessed +{ + public class OtherLibrary { + public void Method () + { + } + } +} \ No newline at end of file diff --git a/test/Mono.Linker.Tests.Cases/LinkXml/EmbeddedLinkXmlFromCopyAssemblyIsProcessed.cs b/test/Mono.Linker.Tests.Cases/LinkXml/EmbeddedLinkXmlFromCopyAssemblyIsProcessed.cs new file mode 100644 index 000000000000..9bddcaae3be4 --- /dev/null +++ b/test/Mono.Linker.Tests.Cases/LinkXml/EmbeddedLinkXmlFromCopyAssemblyIsProcessed.cs @@ -0,0 +1,23 @@ +using Mono.Linker.Tests.Cases.Expectations.Assertions; +using Mono.Linker.Tests.Cases.Expectations.Metadata; +using Mono.Linker.Tests.Cases.LinkXml.Dependencies.EmbeddedLinkXmlFromCopyAssemblyIsProcessed; + +namespace Mono.Linker.Tests.Cases.LinkXml { + [SetupCompileBefore ("Library.dll", + new [] { "Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/OtherLibrary.cs" })] + [SetupCompileBefore ("CopyLibrary.dll", + new [] { "Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/CopyLibrary.cs" }, + resources: new [] { "Dependencies/EmbeddedLinkXmlFromCopyAssemblyIsProcessed/CopyLibrary.xml"})] + [IncludeBlacklistStep (true)] + [SetupLinkerAction ("copy", "CopyLibrary")] + + [KeptTypeInAssembly ("CopyLibrary.dll", typeof (CopyLibrary))] + [KeptTypeInAssembly ("Library.dll", typeof (OtherLibrary))] + public class EmbeddedLinkXmlFromCopyAssemblyIsProcessed { + public static void Main () + { + var tmp = new CopyLibrary (); + tmp.Method (); + } + } +} \ No newline at end of file diff --git a/test/Mono.Linker.Tests.Cases/Mono.Linker.Tests.Cases.csproj b/test/Mono.Linker.Tests.Cases/Mono.Linker.Tests.Cases.csproj index feb9fa1f2556..1039e771e119 100644 --- a/test/Mono.Linker.Tests.Cases/Mono.Linker.Tests.Cases.csproj +++ b/test/Mono.Linker.Tests.Cases/Mono.Linker.Tests.Cases.csproj @@ -63,6 +63,7 @@ +