Fluent NHibernate 1.2 - вызываемый элемент не поддерживается в динамической сборке - PullRequest
7 голосов
/ 15 февраля 2011

Я обновил свой Fluent NHibenate до 1.2, потому что я обновил NHibenate до версии 3.0. Это было в свою очередь, потому что я использую ANTLR в своем проекте и были проблемы совместимости между версиями ANTLR. Теперь я получаю эту ошибку при создании отображений как часть вызова Fluently.Configure (), который я ранее не получал с версией 1.0.X.X с использованием тех же сборок. Я занимаюсь разработкой в ​​C # .NET 3.5 в VS2008.

Ошибка: «Вызванный элемент не поддерживается в динамической сборке.»

    public static ISessionFactory GetFactory()
    {
        if (_factory == null)
        {
            Assembly assembly = Assembly.Load("BigFoot.Infrastructure");

            IApplicationContext springContainer = ContextRegistry.GetContext();
            IDbProvider provider = (IDbProvider)springContainer.GetObject("DbProvider");

            string connection = provider.ConnectionString;

            if (connection.Length > 0)
            {

                _factory = Fluently.Configure()
                    .Database(MsSqlConfiguration.MsSql2008.ConnectionString(connection))
                    .Mappings(m =>
                        {
                            m.FluentMappings.AddFromAssembly(assembly);
                            m.HbmMappings.AddFromAssembly(assembly);
                        })

                    .BuildSessionFactory();
            }
        }

        return _factory;
    }

Ответы [ 4 ]

12 голосов
/ 04 декабря 2011

Для тех, кто снова столкнется с проблемой. Это исключение является нормальным поведением, потому что оно не является необработанным. Единственная причина, по которой вы видите это, заключается в том, что Visual Studio настроен таким образом, что вы видите все исключения (обработанные и необработанные) и «отладка только моего кода» отключена. Таким образом, вы можете просто проигнорировать исключение и нажать «Продолжить», когда оно будет перехвачено, или настроить Visual Studio, чтобы он не показывал вам такие исключения.

4 голосов
/ 14 февраля 2014

Я также получил исключение, говорящее «Вызванный элемент не поддерживается в динамической сборке».и это вызвало у меня некоторую головную боль, чтобы найти причину в моем случае.

Причина, упомянутая в ответе @StuffHappens, сохранилась и для меня: я также установил флажок «Брошенный» для «Общих исключений времени выполнения»в диалоге Отладка-> Исключения.Но у меня также был снят флажок Инструменты-> Параметры-> Отладка -> «Включить только мой код (только управляемый)».На самом деле, я не ожидал, что такие исключения будут отображаться во время разархивирования.

В дополнение к исключению, приведенному выше, я также увидел

  • исключение MissingManifestResourceException от DevExpress с жалобамио том, что какой-то элемент SkinInfoBlob.resources отсутствует в библиотеке DLL, содержащей настраиваемый скин
  • различные исключения FileNotFoundExceptions, жалующиеся на предположительно отсутствующие сборки * .XmlSerializer, имеющие ту же версию, что и сборка, в которой находится нужный тип (не только для нашего собственногосборок, но также и для NHibernate.XmlSerializers)
  • a NotSupportedException от Spring.Net, пытающегося разрешить некоторый объект из NHibernate, заявляющего «Вызванный элемент не поддерживается в динамической сборке».(или "Der aufgerufene Member wird in einer Dynamischen Assembly nicht unterstützt." на немецком языке)
  • a FormatException при работе с символами TatukGIS (или "Die Eingabezeichenfolge hat das falsche Format." на немецком языке)

Я снова установил флажок «Включить только мой код (только управляемый)», и все загадочные исключения исчезли!

Надеюсь, это может помочь кому-то вылезти из этой ловушки.

2 голосов
/ 16 февраля 2011

Я только что потратил все утро на одну и ту же проблему.

Я перепробовал все, но в итоге мне удалось удалить все папки с мусорными ведрами. Я фактически удалил свой проект, затем обновил его до последней версии из репозитория (папки bin не должны регистрироваться), затем собрал и снова запустил проект. Где-то, так или иначе, что-то изменилось, что означало, что nHibernate не мог найти информацию о сборке для log4net. Я предполагаю, что это связано с неправильной конфигурацией в целевой директории, которую не решает чистая / пересборка!

0 голосов
/ 16 июня 2016

Я получил ту же ошибку при загрузке файла sql для использования в коде dapper, я установил действие сборки "Embedded Resource" и сборка .NET смогла его загрузить.

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