我最近在C#.NET中开发了一个应用程序,现在我必须创建相应的设置。我需要在设置阶段实现一个特定的逻辑,因此我选择使用NSIS。特别是我需要在我的应用程序的.config文件中写一些信息。我试图使用基于我在这里找到的nsisXML.dll的宏:http://nsis.sourceforge.net/Talk:NsisXML_plug-in_%28by_Wizou%29[^],但它不起作用!
编译器没有给出任何错误,但是当我启动安装程序时,我获得了一条Windows消息:“Setup.exe已停止工作 - Windows正在检查问题的解决方案......”
所以我不知道可能导致错误的原因!!
如果有人使用NSIS在.config文件中写入不同的解决方案,我将很高兴看到它。谢谢!!
答案 0 :(得分:1)
最终我决定编写C#代码来管理配置文件。 所以我在C#中编写了一个.dll,然后在我的NSIS脚本中使用它作为ReserveFile,使用CLR NSIS(http://nsis.sourceforge.net/Call_.NET_DLL_methods_plug-in[^])插件允许调用托管.NET DLL中的方法。 所以我在NSIS脚本中用随后的代码编写了一个函数: 折叠|复制代码
Function WriteConfig
InitPluginsDir
SetOutPath "${NSISDIR}\Plugins\"
File "${NSISDIR}\Plugins\MyNETdll.dll"
CLR::Call /NOUNLOAD "MyNETdll.dll" "Namespace.Class" "Method-To-Write_in-Config" 3 "Config path" "Key" "Value"
CLR::Destroy
FunctionEnd
其中“3”是方法接受的参数数量,后续字符串是参数本身。
通过这种方式,可以从NSIS脚本中调用用C#编写的任何方法!