https://bugs.winehq.org/show_bug.cgi?id=37783
--- Comment #5 from Anastasius Focht focht@gmx.net --- Hello Nikolay,
you are probably referring to this:
Manifest:
--- snip --- ... <dependency> <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true"> <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" /> </dependentAssembly> </dependency> ... --- snip ---
Trace log:
--- snip --- ... 002a:trace:actctx:parse_manifest parsing manifest loaded from L"\??\C:\Program Files\N1MM Logger+\N1MMLogger.net.exe.manifest" base dir (null) 002a:trace:actctx:parse_assembly_elem (0xfff0db8c) ... 002a:warn:actctx:parse_assembly_identity_elem Unsupported yet language attribute (L"neutral") 002a:trace:actctx:parse_assembly_identity_elem name=L"N1MMLogger.net.exe" version=1.0.0.1 arch=L"x86" ... 002a:warn:actctx:parse_expect_no_attr unexpected attr L"dependencyType"=L"preRequisite" 002a:warn:actctx:parse_expect_no_attr unexpected attr L"allowDelayedBinding"=L"true" 002a:trace:actctx:parse_assembly_identity_elem name=L"Microsoft.Windows.CommonLanguageRuntime" version=4.0.30319.0 arch=(null) 002a:trace:actctx:parse_dependent_assembly_elem adding name=L"Microsoft.Windows.CommonLanguageRuntime" version=4.0.30319.0 arch=(null) 002a:warn:actctx:parse_expect_no_attr unexpected attr L"dependencyType"=L"preRequisite" 002a:warn:actctx:parse_expect_no_attr unexpected attr L"allowDelayedBinding"=L"true" 002a:warn:actctx:parse_assembly_identity_elem Unsupported yet language attribute (L"neutral") ... 002a:trace:actctx:lookup_assembly looking for name=L"Microsoft.Windows.CommonLanguageRuntime" version=4.0.30319.0 arch=(null) 002a:fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.Windows.CommonLanguageRuntime" (4.0.30319.0) 002a:trace:actctx:RtlFindActivationContextSectionString 00000001 (null) 2 L"mscoree.dll" 0xfff0da98 --- snip ---
I couldn't find any documentation how the OS loader handles this but my gut feeling is that .NET/CLR related runtime dependencies ('ClickOnce' manifests) are not supposed to be verified here. It's done by .NET CLR bootstrapper itself.
How about ignoring/skipping .NET related dependencies, that is 'dependentAssembly' with 'dependencyType' and/or 'allowDelayedBinding' set (these are .NET attributes).
http://msdn.microsoft.com/en-us/library/9a30dzbz.aspx
http://msdn.microsoft.com/en-us/library/k26e96zf.aspx
Relying on 'processorArchitecture="msil"' in 'assemblyIdentity' is not safe enough since the CLR "meta" dependency just has name and version.
Regards