none
环境变量更新问题 RRS feed

  • 问题

  • win7上C#控制台程序(称为A)调用了MFC规则dll(称为B),该dll又静态链接了另一个MFC规则dll(称为C)。现在将B和C放在 一个目录dirB中,C#程序在目录dirA中,将dirB路径添加到系统环境变量path中,运行A会提示找不到dll B。首先请别问我为什么要把dll和控制台程序放在不同目录,我只是在其它环境中遇到类似问题,然后用C#程序测试是否存在相同问题,然后真的能重现出该 问题。然后更让人迷惑的地方是下面。

        当我注销系统重新登录(或者重启),在上面的环境中,运行程序A,正常执行。接着我把dirB改成别的目录名,比如dirC,然后把环境变量上path路 径也改为dirC(或者删掉原目录,新建目录dirC),运行程序也正常。按理说,之前第1次添加完环境变量没起作用,我现在也是新的目录,为什么环境变 量起作用了。

    2012年8月15日 12:51

全部回复

  • 如果A先启动,而后修改环境变量,那么这个环境变量是不会被加载进A进程的内存中的,只有重新启动A,才会得到该新的环境变量。不知道你是什么情况。
    2012年8月15日 13:25
  • 你好,我这边的情况,程序都是在环境变量添加之后才启动的。只是现象是如果一开始环境变量添加了没有生效,那么后续再添加都不会生效;如果重启或者注销重新登录,环境变量就会生效,这之后删除老的环境变量,添加新的也会立即生效。
    2012年8月15日 13:39
  • 经过测试,是在unity重新发布之后才会出现上面的问题,所以问题可能和unity有关。
    2012年8月18日 12:19