Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <Target Name="AfterResolveReferences">
- <ItemGroup>
- <EmbeddedResource Include="@(ReferenceCopyLocalPaths)" Condition="'%(ReferenceCopyLocalPaths.Extension)' == '.dll'">
- <LogicalName>%(ReferenceCopyLocalPaths.DestinationSubDirectory)%(ReferenceCopyLocalPaths.Filename)%(ReferenceCopyLocalPaths.Extension)</LogicalName>
- </EmbeddedResource>
- </ItemGroup>
- </Target>
- AppDomain.CurrentDomain.AssemblyResolve += OnResolveAssembly;
- using System;
- using System.Globalization;
- using System.IO;
- using System.Reflection;
- private static Assembly OnResolveAssembly(object sender, ResolveEventArgs args)
- {
- Assembly executingAssembly = Assembly.GetExecutingAssembly();
- AssemblyName assemblyName = new AssemblyName(args.Name);
- string path = assemblyName.Name + ".dll";
- if (assemblyName.CultureInfo.Equals(CultureInfo.InvariantCulture) == false)
- {
- path = $@"{assemblyName.CultureInfo}\{path}";
- }
- using (Stream stream = executingAssembly.GetManifestResourceStream(path))
- {
- if (stream == null)
- return null;
- byte[] assemblyRawBytes = new byte[stream.Length];
- stream.Read(assemblyRawBytes, 0, assemblyRawBytes.Length);
- return Assembly.Load(assemblyRawBytes);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement