1

我最近在 C# .NET 中开发了一个应用程序,现在我必须创建相应的设置。我需要在设置阶段实现特定的逻辑,因此我选择使用 NSIS。特别是我需要在我的应用程序的 .config 文件中写入一些信息。我尝试使用基于我在这里找到的 nsisXML.dll 的宏:http://nsis.sourceforge.net/Talk:NsisXML_plug-in_%28by_Wizou%29[^ ],但它不起作用!

编译器没有给出任何错误,但是当我启动安装程序时,我收到一条 Windows 消息:“Setup.exe 已停止工作 - Windows 正在检查问题的解决方案...”

所以我不知道什么可能导致错误!

如果有人有不同的解决方案来使用 NSIS 写入 .config 文件,我会很高兴阅读它。谢谢!!

4

1 回答 1

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”是该方法接受的参数数量,随后的字符串是参数本身。

这样,任何用 C# 编写的方法都可以从 NSIS 脚本中调用!

于 2013-06-26T14:59:04.677 回答