如果应用程序叫abc.exe,同目录下放置文件abc.exe.config则该应用程序不能运行。报错“文件所在的卷已被外部改变,因此打开的文件不再有效”。删除这个文件,应用程序恢复正常。难道Delphi2007类似于notnet一样,为应用程序提供了配置文件,但又怎么使用该配置文件呢,结构是怎样的呢?

解决方案 »

  1.   

    刚刚用d6交叉试验了一下,似乎问题出在工程的资源文件XX.res上,如果用d6自动生成的资源文件覆盖,再用2007编译出来的应用程序就没有这个问题了,相反用2007创建的工程,用D6编译出来的应用程序也存在类似的问题。
      

  2.   

    另外有一个现象,同样的新建的工程,d6的res文件大小是1k,而2007要6k。但是res文件是编译期起作用的,这个config文件问题是发生在运行期,似乎有联系,想想又风马牛不相及。
      

  3.   

    现在不管是Win32还是.NET的exe都可以带config。如果config不对的话自然会出现问题。要看你为什么需要一个config了,是想启动视觉样式还是想配置UAC。config文件的具体信息,一般都在MSDN里面,Google一下也可以搜到不少范例。感觉这个和res的联系不大。
      

  4.   

    楼上的意思是config文件是所以的应用程序的标准配置?不大对吧,d6开发的应用程序是没有的,起码我没听说过。另另外,我这边config文件的作用是配置一些界面风格和其他一些系统参数,当然可以用注册表阿,可以用ini文件阿,也可以换个后缀啊,但是这些跟本贴主题无关紧要啊。其中的格式是我自己定的,跟msdn或者net中的config文件毫无关系,只是参照net中的应用程序配置文件起了个同样的后缀名而已,正因为这个巧合,才发现了这样一个问题。
      

  5.   

    借助楼上的思路,发现这个config文件必须跟notnet规定的一样,根标签必须是configuration,就不会抛出错误了。但不知道其是否提供了读取方法,如果还是由应用程序自己撰写读取方法,这个就有点开玩笑了。