Не удалось загрузить файл или сборку RevitApi версии = 19.0.0.0, - PullRequest
0 голосов
/ 04 марта 2019

Последние несколько недель я создаю надстройку для программы Revit.Все прошло нормально, но внезапно, когда я пытаюсь установить DataSource моего DataGridView в моем классе getEntiteitenData, я получаю ошибку:

Ошибкаиспользуя раскрывающийся список: не удалось загрузить файл или сборку 'RevitAPI, версия = 19.0.0.0, культура = нейтральный, PublicKeyToken = null' или одна из его зависимостей.Система не может найти указанный файл.

Я не изменил расположение файлов или что-то еще, и .dll загружен во все классы.Кроме того, я использовал этот метод на другом DataGridView, и он работал нормально.Единственное отличие, которое я могу сказать, это то, где он работает, это Windows Form, другое, где это не работает, это user control

Самая досадная вещь в этомто есть, когда выдает ошибку, она закрывает мою визуальную студию.

Любая помощь будет принята с благодарностью!

enter image description here

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

По какой-то причине проблема возникала только тогда, когда я связывал данные из окна дизайнера.Я попытался связать его кодом, и это сработало!

После того, как я добавил это в свой 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();

Теперь все работает, и столбцы, которые я хотел связать, теперь действительно визуальные в конструкторе.

0 голосов
/ 04 марта 2019

Вы можете попробовать это.

Добавьте эту строку в основной класс вашего приложения.Это должно быть вызвано перед чем-либо.

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

Это будет загружать только сборки в папке вашего приложения или в папке, определенной вами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...