欢迎加入BIM行业开发交流1群 群号:711844216(满),二群群号:1016453207
需要Revit二次开发全流程教学 的朋友可以联系我qq:1056295111
一、背景
小伙伴们在做reivt二次开发时,如果引用了非Revit提供给我们的dll,可能会出现 "Could not load file or assembly xxx"的错误提示。那么如何解决呢?
二、思路
解决方案1
在vs的引用中,右键,选择其属性,然后将复制本地设置为True
解决方案2
将引用的xxx.dll文件,放到revit自身的dll文件夹下,也就是RevitAPI.dll所在的文件夹,通常默认路径是C:\Program Files\Autodesk\Revit 2018,如果revit不是默认安装在C盘,那就在其他盘找到对应目录。然后在引用中,重新添加对此xxx.dll文件的引用。
解决方案3
在主程序中引用一下这个dll的方法(如果涉及到了外部事件、或者制作成安装包时)
举个例子:比如提示 Could not load file or assembly MaterialDesignThemes.Wpf.dll
在主程序中加入以下代码即可:
namespace RevitWpfTheme
{
[Transaction(TransactionMode.Manual)]
class Class1 : IExternalCommand
{
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
//我们在这个地方引用这个程序集MaterialDesignThemes.Wpf.dll里面一个类即可,比如Theme。
Theme theme =new Theme();
MainWindow wpf = new MainWindow();//实例化主窗口类
wpf.ShowDialog();//展示界面
return Result.Succeeded;
}
}
}
通过这三种方案,基本上就能解决Revit二次开发中,Could not load file or assembly 的问题。
三、注意事项
1.对于RevitAPI.dll和RevitAPIUI.dl了,我们通常会将其属性中的复制本地设置为false,但是有时候添加外部的其他引用可能需要将复制到本地设置为True。
2.大家好,我是黑夜の骑士,欢迎大家关注我的博客,笔者将持续输出revit二次开发以及编程干货。