Error: Could not load file or assembly or one of its dependencies
可以使用Fuslogvm.exe 来帮助调查
Fuslogvm.exe
程序集绑定日志查看器显示程序集绑定的详细信息。此信息可帮助您诊断 .NET Framework 无法在运行时定位程序集的原因。
Steps to enable assembly binding via Fusion Log Viewer:
- 点击 fuslogvw.exe
- 点击 Settings 设定log文件的输出目录等
- 运行需要观察的程序
- 点击 Refresh
- 选择刷新出来的需要观察的程序
- 点击 View Log
可能的解决方案:将assembly loading和程序的其他部分分隔开
static void Main(string[] args)
{
LoadAssemblies();
MainCore(args);
}
[MethodImpl(MethodImplOptions.NoInlining)]
static void MainCore(string[] args)
{
}
private static void LoadAssemblies()
{
AppDomain.CurrentDomain.AssemblyResolve += (s, args) =>
{
var installFolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
return new[] { "", "Reference" }
.Select(subFolder => Path.Combine(installFolder, "DemoProject", subFolder, new AssemblyName(args.Name).Name + ".dll"))
.Where(File.Exists)
.Select(Assembly.LoadFrom)
.FirstOrDefault();
};
}