如何为NSClient++编写.Net插件

本文关键字:Net 插件 编写 NSClient++ | 更新日期: 2023-09-27 18:00:50

我一直在努力寻找一些为NSClient++编写.Net插件的示例或文档。

有人能告诉我一个工作示例应用程序或一些文档吗?

我在GitHub上找到了CSharpSamplePlugin的源代码。由于我不使用CMake,我创建了一个新的VS2013项目,并将CMake设置中引用的三个DLL添加到我的项目中(Google.ProtocolBuffers.dllNSCP.Core.dllNSCP.Protobuf.dll(。我在NSClient++安装目录中找到了DLL。

然而,SamplePlugin.cs中的代码似乎不适用于当前的DLL。我收到一个错误:

response.AddLines(Plugin.QueryResponseMessage.Types.Response.Types.Line.CreateBuilder().SetMessage("Hello from C#").Build());

说:

Error   2   'Plugin.QueryResponseMessage.Types.Response' does not contain a definition for 'Types'  C:'vs_projects'NSClientHelpers'NsClientPlugin'SamplePlugin.cs   45  74  NsClientPlugin
Error   1   'Plugin.QueryResponseMessage.Types.Response.Builder' does not contain a definition for 'AddLines' and no extension method 'AddLines' accepting a first argument of type 'Plugin.QueryResponseMessage.Types.Response.Builder' could be found (are you missing a using directive or an assembly reference?)   C:'vs_projects'NSClientHelpers'NsClientPlugin'SamplePlugin.cs   45  22  NsClientPlugin

那么,在哪里我可以找到一个更新的示例插件或如何制作NSClient++插件的例子呢?

在与此斗争了一段时间后,我只是将命令重写为两个独立的可执行文件,但我无法使其工作,这让我很恼火;(

如何为NSClient++编写.Net插件

我从ServerFault上NSClient的创建者那里得到了答案。简而言之,master分支中的代码与以前的版本不兼容。在检查出发布标签中的示例代码并将生成的DLL放入"modules/dotnet"文件夹后,我可以将我的插件添加到INI文件中。。。

[/modules]
DotnetPlugins = 1 
[/modules/dotnet]
sample=CSharpSamplePlugin.dll

并看到它与nscp test:一起工作

...
D       core Loading plugin: DotnetPlugin
L            Webserver port is: 1234
...
check_dotnet
D            Got command: check_dotnet
L        cli OK: Hello from C#