过去几周来,我一直在为程序“ Revit”创建一个加载项。一切都很好,但是突然之间,每当我尝试将DataSource
的{{1}}设置为班级DataGridView
时,都会收到错误消息:
使用下拉菜单时出现错误:无法加载文件或程序集'RevitAPI,版本= 19.0.0.0,Culture = neutral,PublicKeyToken = null'或其中之一 依赖性。系统找不到指定的文件。
我没有更改文件位置或其他任何内容,并且getEntiteitenData
已加载到所有类中。另外,我在另一个.dll
上使用了此方法,并且效果很好。到目前为止,我只能说出一个唯一的区别,一个是DataGridView
,另一个是Windows Form
最令人讨厌的是,当出现错误时,它将关闭我的视觉工作室。
任何帮助将不胜感激!
答案 0 :(得分:0)
您可以尝试一下。
将此行添加到应用程序的主类。必须先调用它。
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
将此代码添加到您的应用程序中。
static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
string assemblyFullName;
System.Reflection.AssemblyName assemblyName;
assemblyName = new System.Reflection.AssemblyName(args.Name);
assemblyFullName = System.IO.Path.Combine(
System.IO.Path.Combine(
System.Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), <You folder>), assemblyName.Name + ".dll");
if (System.IO.File.Exists(assemblyFullName))
return System.Reflection.Assembly.LoadFile(assemblyFullName);
else
return null;
}
这只会在您的应用程序文件夹或您定义的文件夹中加载程序集
答案 1 :(得分:0)
由于某种原因,该问题仅在我从设计器窗口绑定数据时才出现。我尝试通过代码将其绑定,并且这样做有效!
将其添加到Designer.Cs之后:
private System.Windows.Forms.BindingSource getEntiteitenDataBindingSource3;
this.getEntiteitenDataBindingSource3 = new System.Windows.Forms.BindingSource(this.components);
((System.ComponentModel.ISupportInitialize)(this.getEntiteitenDataBindingSource3)).BeginInit();
this.entiteitenGrid.DataSource = this.getEntiteitenDataBindingSource3;
this.getEntiteitenDataBindingSource3.DataSource = typeof(getEntiteitenData);
((System.ComponentModel.ISupportInitialize)(this.getEntiteitenDataBindingSource3)).EndInit();
一切似乎都可以正常工作了,我想绑定的列现在在设计器中是实际的视觉效果。