Ошибка при запуске RegAsm в C # DLL

Я написал C # DLL, которая выполняет сбор и обработку данных с помощью Entity Framework. Библиотека DLL совместима с COM и предназначена для вызова устаревшим приложением VB6. Он использует .NET 3.5 с использованием Visual Studio 2010

DLL отлично работает как в среде разработки, так и в среде подготовки Windows 2003 Server. Однако при развертывании в среде Live (также Windows Server 2003) DLL выдает ошибку при выполнении RegAsm'd. Ошибка была

RA0000 Binary format of the specified custom attribute was invalid

DLL компилируется нормально, и в среде Live также установлены и другие компоненты .NET 3.5, которые мы написали (хотя ничего, что использует Entity Framework). Файлы развертывания одинаковы для Live и Staging.

Я изо всех сил пытаюсь найти для этого причину. Я надеялся, что у кого-то здесь есть предложения или идеи?

заранее спасибо


person Ian Boggs    schedule 17.11.2017    source источник
comment
Можете ли вы запустить его в Linqpad с DLL из производственной среды и блоком кода, который, как вы подозреваете, вызывает проблему?   -  person lloyd    schedule 17.11.2017
comment
Вы уверены, что используете правильную (32-разрядную или 64-разрядную) версию RegAsm на Live-сервере?   -  person spodger    schedule 17.11.2017
comment
@lloyd Я не совсем уверен, какой блок кода вызывает ошибку, поскольку ошибка возникает, когда я регистрирую DLL во время процесса установки, но я посмотрю на Linqpad.   -  person Ian Boggs    schedule 17.11.2017
comment
@spodger Поскольку мы работаем на Windows Server 2003, на всех серверах есть только 32-разрядная версия. Мы явно вызываем regAsm из папки 'C: \ Windows \ Microsoft.Net \ Framework'   -  person Ian Boggs    schedule 17.11.2017


Ответы (1)


Похоже, проблема заключалась в том, что .NET 3.5 SP1 не был установлен на Live-сервере, но был установлен в Dev и Staging.

Вот вам и подходящая среда. После установки SP1 DLL зарегистрировалась и работала должным образом.

person Ian Boggs    schedule 20.11.2017