@@ -21,7 +21,7 @@ SPDX-License-Identifier: MIT
2121 <CoreAssemblyOutputs Include =" $(OutputPath)**\Smdn*.dll" />
2222 </ItemGroup >
2323
24- <GetCoreAssemblyInformationsFromLoadedAssembly AssemblyNames =" %(CoreAssemblyOutputs.Filename) " Condition = " '$(UseExportedTasksFromOutputAssembly)' == 'true' " >
24+ <GetCoreAssemblyInformationsFromLoadedAssembly AssemblyFiles =" %(CoreAssemblyOutputs.FullPath) " >
2525 <Output TaskParameter =" AssemblyInformations" ItemName =" CoreAssemblyInformations" />
2626 </GetCoreAssemblyInformationsFromLoadedAssembly >
2727
@@ -49,22 +49,31 @@ SPDX-License-Identifier: MIT
4949 AssemblyFile =" $(MSBuildToolsPath)\Microsoft.Build.Tasks.Core.dll"
5050 >
5151 <ParameterGroup >
52- <AssemblyNames ParameterType =" Microsoft.Build.Framework.ITaskItem[]" Required =" true" />
52+ <AssemblyFiles ParameterType =" Microsoft.Build.Framework.ITaskItem[]" Required =" true" />
5353 <AssemblyInformations ParameterType =" Microsoft.Build.Framework.ITaskItem[]" Output =" true" />
5454 </ParameterGroup >
5555 <Task >
5656 <Using Namespace =" System" />
5757 <Using Namespace =" System.Linq" />
58+ <Using Namespace =" System.IO" />
5859 <Using Namespace =" System.Reflection" />
5960 <Using Namespace =" System.Runtime.Versioning" />
6061 <Code Type =" Fragment" Language =" cs" ><![CDATA[
61- AssemblyInformations = AssemblyNames
62- .Select(item =>
63- AppDomain
62+ AssemblyInformations = AssemblyFiles
63+ .Select(static item => {
64+ var assemblyName = Path.GetFileNameWithoutExtension(item.ItemSpec);
65+
66+ // find expected assembly from loaded assemblies
67+ var assm = AppDomain
6468 .CurrentDomain
6569 .GetAssemblies()
66- .First(assembly => assembly.GetName().Name == item.ItemSpec)
67- )
70+ .FirstOrDefault(assembly => assembly.GetName().Name == assemblyName);
71+
72+ // load assembly from file
73+ assm ??= Assembly.LoadFrom(item.ItemSpec);
74+
75+ return assm;
76+ })
6877 .Select(static assembly =>
6978 (
7079 Name: assembly.GetName().Name,
0 commit comments