看下这个是否有帮助
CONG XU
您认为此帖子是否有用?欢迎为此帖点赞。
您的问题是否已得到解答?请点击“接受解答”按钮。
Hi @834939691 :
这个问题在引用其他框架的时候也会出现这种情况,放到当前目录和添加引用都无法解决。我再引用"MatetialThemeWPF"时也遇到过,你可以使用下面的方法debug一下
1. 使用Assmenly.Load()强制加载,并将dll放到文件夹中,检测一下有没有载入,因为Revit在引用某些框架的时候会出现无法加载的问题
2. 在初始化WPF窗口之前,new一个handyControol的类,任意一个,让runtime自动调用查找这个dll
3. 如果有低版本更换一下版本试一下
public static Assembly AssemblyResolve(object sender, ResolveEventArgs args)
{
var assName = new AssemblyName(args.Name).FullName;
try
{
if (assName.Contains("WPF_CaptureShot") && !assName.Contains("resources"))
{
string file = Path.GetDirectoryName(typeof(MakeDataRevitCommand).Assembly.Location) + "\\" + assName.Split(',')[0] + ".dll";
byte[] buff = System.IO.File.ReadAllBytes(file);
var da = Assembly.Load(buff);
return da;
}
else if (assName.Contains("MaterialDesignThemes.Wpf") && !assName.Contains("resources"))
{
string pathLoc = Assembly.GetExecutingAssembly().Location;
FileInfo finfo = new FileInfo(pathLoc);
var pathDir = finfo.DirectoryName;
var load = Assembly.LoadFrom($"{pathDir}\\MaterialDesignThemes.Wpf.dll");
Assembly.LoadFrom($"{pathDir}\\MaterialDesignColors.dll");
return load;
}
else if (assName.Contains(".resources"))
{
return null;
}
else
{
throw new DllNotFoundException("BIMCooperative" + assName);
}
}
catch (Exception ex)
{
throw new DllNotFoundException(assName);//否则抛出加载失败的异常
}
}
LanHui Xu
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.