我有一个c#dll实现了一个消息队列服务,在Windows上它运行得很好。 为了找到所有队列,我在安装过程中使用存储在Machine中的环境变量。
System.Environment.SetEnvironmentVariable(“PHMQ”,install_dir,EnvironmentVariableTarget.Machine);
现在我只是尝试在Mono上运行它,当程序运行时抛出异常。 未安装PHMQ服务。
经过2个小时的搜索,我发现Mono并没有真正存储它只是将它们发送到null的这种变量。 (一个简单的文本文件太简单了?)
所以,问题是:我怎样才能解决这个问题? 第一个想法是:如果在linux上运行将它放在像/ opt这样的特定文件夹中,但它是一个dll,如果这样做,任何想要使用它的程序都必须像root一样执行
有什么想法吗?
答案 0 :(得分:0)
您可以让程序在/ etc / environment中添加一行来设置机器的env var。显然要修改该文件,你需要root,所以应该在安装过程中完成。
然而,一个已知的位置将是更好的IMO。我不明白为什么你不能从/ opt执行。