从NSIS调用.net dll

时间:2013-02-05 12:41:37

标签: wcf nsis

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

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

基于此,我将继续或中止我的安装。我尝试使用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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

你不能这样做。

CLR :: Call plugin only supports .Net 2.0 assemblies

WCF was introduced in .NET 3.0

相关问题