如何为NSClient++编写.Net插件
本文关键字:Net 插件 编写 NSClient++ | 更新日期: 2023-09-27 18:00:50
我一直在努力寻找一些为NSClient++编写.Net插件的示例或文档。
有人能告诉我一个工作示例应用程序或一些文档吗?
我在GitHub上找到了CSharpSamplePlugin的源代码。由于我不使用CMake,我创建了一个新的VS2013项目,并将CMake设置中引用的三个DLL添加到我的项目中(Google.ProtocolBuffers.dll
、NSCP.Core.dll
和NSCP.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++插件的例子呢?
在与此斗争了一段时间后,我只是将命令重写为两个独立的可执行文件,但我无法使其工作,这让我很恼火;(
我从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#