1

我想在继续安装 NSIS 之前验证用户名和密码。

当我单击下一步按钮时,我想检查用户是否有权安装应用程序。对于此检查,我想从我的 .NET 应用程序进行 WCF 调用。它将返回真或假。

基于此,我将继续或中止我的安装。我尝试使用CLR::Call /NOUNLOAD插件。由于我指的是服务引用,因此它引发了异常:

Error calling .net dll method

这是我到目前为止的 NSIS 脚本:

Name "Test CLRDLL MakeLogEntry" 
OutFile "TestCLRDLL.exe"
Page instfiles

Section 
    start InitPluginsDir 
    SetOutPath $PLUGINSDIR 
    File "MyDll.dll" 
    CLR::Call /NOUNLOAD "MyDll.dll" "namespace.classname" \ "ValidateLogin" 3 "Myserviceaddress/Servicename.svc"; "username" "password" 
    pop $0 
    MessageBox MB_OK $0 
sectionEnd 

Function .onGUIEnd 
    CLR::Destroy 
FunctionEnd
4

2 回答 2

3

您还应该知道,CLR::Call 插件仅适用于 .Net 2.0 程序集(不是更高版本)。所以也许你应该重新编译你的dll。

于 2013-03-01T16:55:10.413 回答
1

你不能做这个。

CLR::Call 插件仅支持 .Net 2.0 程序集

WCF 是在 .NET 3.0 中引入的

于 2013-03-04T22:20:23.810 回答