* Ensure using the given executable path.
Fix the bug that corerun trying to load the executable from current directory even if the user has specified a full path of the executable.
Fix dotnet/coreclr#5631
* Revert "Ensure using the given executable path."
This reverts commit dotnet/coreclr@
d237e6329f85132429176a0644cf6d93c9437ff4.
* Partially implemented.
* Ensure app context using correct IL file path.
Extracting simple name from the given file path and look up its value in tpa list. If the value does not equal to the given file path, we update the value with correct given file path.
Fix dotnet/coreclr#5631
* Re-arrange the slashIndex to eliminate unneccessary code.
* A few performance improvement with a memory leak bug fixed.
* Added the absolute path of target assembly to tpa list.
Fix dotnet/coreclr#5631
* Added the path of target assembly to tpa on Windows.
Fix dotnet/coreclr#5631
Commit migrated from https://github.com/dotnet/coreclr/commit/
9e3ef8eb56d5027ed96348e89911afacbccee9f0
return false;
}
+ StackSString tpaList;
+ if (!managedAssemblyFullName.IsEmpty())
+ {
+ // Target assembly should be added to the tpa list. Otherwise corerun.exe
+ // may find wrong assembly to execute.
+ // Details can be found at https://github.com/dotnet/coreclr/issues/5631
+ tpaList = managedAssemblyFullName;
+ tpaList.Append(W(';'));
+ }
+
+ tpaList.Append(hostEnvironment.GetTpaList());
+
//-------------------------------------------------------------
// Create an AppDomain
};
const wchar_t *property_values[] = {
// TRUSTED_PLATFORM_ASSEMBLIES
- hostEnvironment.GetTpaList(),
+ tpaList,
// APP_PATHS
appPath,
// APP_NI_PATHS
GetDirectory(managedAssemblyAbsolutePath, appPath);
std::string tpaList;
+ if (strlen(managedAssemblyAbsolutePath) > 0)
+ {
+ // Target assembly should be added to the tpa list. Otherwise corerun.exe
+ // may find wrong assembly to execute.
+ // Details can be found at https://github.com/dotnet/coreclr/issues/5631
+ tpaList = managedAssemblyAbsolutePath;
+ tpaList.append(":");
+ }
+
// Construct native search directory paths
std::string nativeDllSearchDirs(appPath);
char *coreLibraries = getenv("CORE_LIBRARIES");
AddFilesFromDirectoryToTpaList(coreLibraries, tpaList);
}
}
+
nativeDllSearchDirs.append(":");
nativeDllSearchDirs.append(clrFilesAbsolutePath);