首页 > 解决方案 > 无法加载文件或程序集“RevitApi”版本 = 19.0.0.0,

问题描述

在过去的几周里,我一直在为“Revit”程序创建一个插件。一切都很好,但是突然之间,每当我尝试将DataSourcemy设置DataGridView为我的班级getEntiteitenData时,我都会收到错误消息:

使用下拉列表时出错:无法加载文件或程序集“RevitAPI,版本=19.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。该系统找不到指定的文件。

我没有更改文件位置或任何内容,并且.dll已在所有类中加载。另外,我在另一个上使用过这种方法,DataGridView效果很好。到目前为止,我能说的唯一区别是,它在哪里工作,它是一个Windows Form,另一个,它不工作的地方,它是一个user control

最烦人的是,当它给出错误时,它会关闭我的视觉工作室。

任何帮助将不胜感激!

在此处输入图像描述

标签: c#visual-studiowinformsuser-controls.net-assembly

解决方案


你可以试试这个。

将此行添加到应用程序的主类中。这必须在任何事情之前调用。

        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;
        }

这将仅加载应用程序文件夹或您定义的文件夹中的程序集


推荐阅读