Как зарегистрировать .NET DLL с помощью Inno Setup

Я написал библиотеку классов с использованием Visual Studio 2010 C # для чтения информации об оборудовании компьютера (например, HDD / SSD). Я буду использовать эту dll для создания установщика с помощью InnoSetup для чтения информации об оборудовании целевого компьютера. Теперь моя проблема заключается в том, что .NET dll нельзя использовать напрямую, если она еще не зарегистрирована. Я пытаюсь найти способ зарегистрировать dll во время InitializeSetup в InnoSetup, чтобы я мог использовать функции в dll. Вот сценарий, который я написал для установщика.

function InitializeSetup(): Boolean;
var
    obj: Variant;
    diskPartitions: Integer;
    va: String;
    ErrorCode: Integer;
    b: Boolean;
begin
    ExtractTemporaryFile('SSHardwareChecker.dll');
    RegisterServer(False, ExpandConstant('{tmp}\SSHardwareChecker.dll'), False);
    obj := CreateOleObject('SSHardwareChecker.SSClass');
    va := obj.GetDiskDriveInformation;
    MsgBox(va, mbInformation, mb_Ok);
    b:=UnregisterServer(False, ExpandConstant('{tmp}\SSHardwareChecker.dll'), False);
end;

Функция RegisterServer , похоже, не работает. Выдает ошибку, в которой говорится, что RegSvr32 завершился неудачно с кодом выхода 0x4 . Я прочитал много статей в сети, в которых говорится, что .net dll должна быть зарегистрирована с помощью regasm. Я действительно не знаю, как это сделать, особенно в Inno Setup.

Пожалуйста, помогите, ребята.

9
задан maverik 11 April 2011 в 08:20
поделиться