gpt4 book ai didi

inno-setup - 如何使用Inno Setup注册.NET DLL

转载 作者:行者123 更新时间:2023-12-04 03:54:30 28 4
gpt4 key购买 nike

我已经使用Visual Studio 2010 C#编写了一个类库来读取计算机的硬件信息(例如HDD/SSD)。我将使用该dll使用InnoSetup创建安装程序,以读取目标计算机的硬件信息。现在我的问题是,除非已注册,否则无法直接使用.NET dll。我正在尝试寻找一种在InnoSetup中的InitializeSetup期间注册dll的方法,以便可以使用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 failed with exit code 0x4。我在网上读了很多文章,说.net dll应该使用regasm注册。我真的不知道该怎么做,尤其是在Inno Setup中。

请帮助大家。

最佳答案

尽管已经一年多了,但我最近遇到了同样的问题,并且能够使用以下脚本进行纠正。

[Run]
Filename: "{dotnet20}\RegAsm.exe"; Parameters: /codebase YourDLL.dll; WorkingDir: {app}; StatusMsg: "Registering Controls..."; Flags: runminimized

如果文件已在初始化步骤中注册,我们可以使用Inno安装程序的支持功能之一。
function Exec(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean;
可以在以下位置找到更多信息:
Inno Setup Help

关于inno-setup - 如何使用Inno Setup注册.NET DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5618337/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com