gpt4 book ai didi

c# - 在 Installscript 中使用的 .NET dll 中使用 bool 返回值

转载 作者:行者123 更新时间:2023-11-30 16:16:42 25 4
gpt4 key购买 nike

我已经创建了一个要在 Installscript 中使用的 .NET dll。它主要安装证书、删除证书并检查证书是否已存在。这是我的 Exists 方法:

[ComVisible(true)]
public bool Exists(string thumbPrint)
{
try
{
...
//Check if the certificate exists on the store.
var certCollection = store.Certificates.Find(X509FindType.FindByThumbprint, thumbPrint, false);
return (certCollection.Count > 0);

}
catch (Exception exception)
{
...
}
}

这是安装脚本代码

szDLLPath = SUPPORTDIR ^ "X509Framework.dll";   
szClassName = "X509Framework.X509StoreProcessor";
DotNetUnloadAppDomain("X509FrameworkDomain");
try
set oX509Store = DotNetCoCreateObject(szDLLPath, szClassName, "X509FrameworkDomain");
catch
SprintfBox (INFORMATION, "Error","Error occured: %i\n\n%s\n\n%s", Err.Number, Err.Description, Err.LastDllError);
abort;
endcatch;

try
nReturn = oX509Store.Exists(FinArchCodeSigningSha);
catch
SprintfBox (INFORMATION, "Error","Error occured: %i\n\n%s\n\n%s", Err.Number, Err.Description, Err.LastDllError);
abort;
endcatch;

在这个例子中,当我在 Installscript 中调试它时,无论证书是否存在,nReturn 总是 -1。 (当然从 .NET 程序它工作正常)然后我尝试使用 int 作为返回值,这成功了。所以有一个解决方法。

但我想知道是否有人知道为什么我不能使用 bool 作为 Installscript 中使用的 .NET dll 的返回值。

最佳答案

最后发现还是挺简单的。 Installshield 无法解释 .NET 中的 bool 字段。不得不改用 int。

.NET 程序必须返回一个 int 值:1 表示 TRUE0 表示 FALSE(我知道的标准)

然后我将返回值设置为 Installshield 中的 BOOL 变量。

关于c# - 在 Installscript 中使用的 .NET dll 中使用 bool 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18012286/

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