When packaging assemblies, during the extraction, below warning messages are triggered :
WARNING The DLL extractor has returned an not mapped error when extracting \\...\lib\...\Newxxx.Json.dll
Release | Yes/No |
---|---|
8.1.x | |
8.0.x | |
7.3.x |
RDBMS | Yes/No |
---|---|
Oracle Server | |
Microsoft SQL Server | |
CSS2 |
- Create a ".NET assemblies on your file system" package that points to the assemblies location.
- Package the ".NET assemblies on your file system".
- Open the Extraction.castlog2 file
This issue occurs when the .NET extractor is not able to find the depencies between assemblies.
- In the DMT package windows, go to the extraction step and open the Extraction.castlog2, and check the name of the dll files involved in the warning.
- Check if .NET assemblies are in the delivery machine (local machine) or in the network.
- If the assemblies are in the network
- The assemblies have to be in the same folder.
- If the issue is still there for some assemblies, check the .NET security policy.
- If the security policy is very low, check the dependency.
- If the assemblies are in the Delivery machine
- Put all the assemblies in the same folder.
- If the issue is still there for some assemblies, check the dependency.
- If the assemblies are in the network
This warning message occurs when the .NET extractor is not able to find the dependencies between assemblies.To make the extractor works correctly, you have to:
Check if .NET assemblies are in the delivery machine (local machine) or in the network
If the assemblies are in the network
Assemblies have to be in one folder
Put all the assemblies in the same folder, then, it will be easy for the extractor to find the dependencies.
If Issue is still there, check the security policy
If the issue is still there, check the .NET Security Policy. The .NET extractor has to open and read the assemblies. If the security policy is high, it prevents the extractor to open the assemblies, and then, to get the dependencies. If the customer needs to keep the assemblies on network, he must reduce the .NET security policy.
If Issue is still there even if the security policy is low, check the dependencies
If the security policy is already low, and the assemblies are in only one folder, check the dependencie of the assemblies triggered with the warning.
To check the dependencies, run the .NET Extractor manualy :
Run the .NET extractor manually.
To run the .NET extractor manually, do as follows :
1- Create the input.config file. This file contains the path to the assembly you want to extract. The template is shown below :
<?xml version='1.0' encoding='utf-8' ?> <Assemblies> <ToRead> <Assembly path="D:\Example_of_path\location_of_the_assemblies\net40\TheAssemblytoExtract.dll"> <ReferenceDir path="D:\Example_of_path\location_of_the_assemblies\net40\"/> </Assembly> </ToRead> </Assemblies>
2- Run the .NET extractor as shown below :
C:\Program Files (x86)\CAST\7.3>CAST.DotNet.AssemblyExtractor-4.0.exe x -e D:\tmp\Extractor\input.config
There are 4 .NET extractor, if there is an inconsistency in the extractor version, you can replace "CAST.DotNet.AssemblyExtractor-4.0" by the following extractor :
CAST.DotNet.AssemblyExtractor-2.0
CAST.DotNet.AssemblyExtractor-1.1
CAST.DotNet.AssemblyExtractor-1.0
3- The results of the extractor will be as below
If there is dependencies that are missing, you will get the following message :
WARNING Failed to load a type from assembly ':\Example_of_path\location_of_the_assemblies\net40\Microsoft.Data.OData.dll, [Microsoft.Data.OData, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad3 64e35]', reason: 'Could not load file or assembly 'Microsoft.Data.Edm, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. General Exception (Exception from HRESULT: 0x80131500)'
If the assemblies are in the Delivery machine
Assemblies have to be in one folder
Put all the assemblies in the same folder, then, it will be easy for the extractor to find the dependencies.
If the Issue is still there, check the dependencies
If the assemblies are already in one folder, check the dependencie of the assemblies triggered with the warning by running the .NET extractor manually as explained in the Run the .NET extractor manually paragraph
Ticket # 5531