请教高手:
   我做好了一个c#.net2003 的程序,然后用 innosetup 打包,客户可以把这个包安装上(客户安装了.net framework),但是在桌面双击快捷方式的时候,会立刻跳出一个异常错误的文本框。
   请问高手,有没有人知道这是怎么回事啊, 我为这个问题困扰了一个星期了 呜呜~~~, 多谢! 感激不尽,请赐教!
 CLR - 公共语言运行环境库  如下图:
   -----------------------------------------------
   |li.exe  公共语言运行库调试服务                |
   |   应用程序生成了一个无法处理的异常           |
   |   进程ID=0x2c0(704), 线程ID=0x434(1076)      |
   | 单击“确定”终止该应用程序                   |
   | 单击“取消”调试该应用程序                   |
   |      确定                       取消         |
   ------------------------------------------------
 

解决方案 »

  1.   

    是不是在程序里面用相对路径操作了文件?
    如果是,要在操作文件的时候取得exe文件的绝对路径,再得到文件的绝对路径。
    因为在桌面双击快捷方式的时候,使用相对路径就会使用相对于桌面的路径。
      

  2.   

    我是用了绝对路径, 比如那个文件里面就是 这样的:
    [Files]
    Source: "F:\tlFTP7.13\FTP.exe"; DestDir: "{app}"; Flags: ignoreversion
    Source: "F:\tlFTP7.13\mscoree.dll"; DestDir: "{app}"; Flags: ignoreversion
    Source: "F:\tlFTP7.13\AxInterop.MSWinsockLib.dll"; DestDir: "{app}"; Flags: ignoreversion
    Source: "F:\tlFTP7.13\FTP.opt"; DestDir: "{app}"; Flags: ignoreversion
    Source: "F:\tlFTP7.13\FTP.pdb"; DestDir: "{app}"; Flags: ignoreversion
    Source: "F:\tlFTP7.13\ICSharpCode.SharpZipLib.dll"; DestDir: "{app}"; Flags: ignoreversion
    Source: "F:\tlFTP7.13\Indy.Sockets.dll"; DestDir: "{app}"; Flags: ignoreversion
    Source: "F:\tlFTP7.13\Interop.InetCtlsObjects.dll"; DestDir: "{app}"; Flags: ignoreversion
    Source: "F:\tlFTP7.13\Interop.FTPLib.dll"; DestDir: "{app}"; Flags: ignoreversion这些不都是绝对路径么 ????
    我想 是不是 用innosetup 给 c#.net 打包, 我忘记了装什么东西 .dll文件之类的,或者是那些.dll 文件都需要注册么 ??
    有没有人知道这个错误的其他可能原因。 谢谢
      

  3.   


    客户机的 framework 确认是 v1.1 的吗?
      

  4.   

    这些文件在机器上都存在.编译都没有问题. 我的机器上都可以 安装运行了. 
    客户的机器上是V1.1 , 我的代码是在 .net 2003 ,客户的机器还特别的打了相关的补丁。 
    我真的想不出来是为什么了。 
     对了,我在程序里面用了一个vc 的ActiveX控件, 我把vc 代码生成的一个 .ocx 文件也打包放进去了。是不是还得引用 VC 的什么库呢
      

  5.   

    是不是这个东西,,"{app}";      与绝对路径,,冲突????两个要一个就可以吧!!!