小弟学Delphi不久,费了好大劲用Delphi2006写了一个VCL For .Net Application的程序, 程序不大, 只有200KB,在自己机子上运行很好,结果兴冲冲地放到别人的机子上一试才发现根本就用不了,一运行就出错,超级郁闷 我想是不是别人的电脑上没有装.Net FramWork的原因,可是装了以后还是出现同样的错误我的程序比较简单,就引用了一个System.IO的文件, 也不知道为什么会这样,难道要在别人电脑上也装个Delphi2006才能用,请问各位大大,可不可以在Delphi的编绎过程中把要用的一些什么类库啊什么的都打进EXE文件里,文件大点没关系,只要放哪都能用就可以了,我在网上找了一下,有人说:选菜单里的 Project -> Options.. (Shift+Ctrl+F11)
出现Project Options for Project1.exe窗口,在左边选 Packages 出现如下图的东西,这样修改:
1> 将Runtime packages里的[ ]Build with runtime packages钩上
2> 将不需要的包去掉就行了。(一般编写Win32的程序,只要rtl;vcl就行)可是我的Options里根本就没有Packages这个选项,只有:forms
application
compiler
compiler Messages
Linker
Directories/Conditionals
Debugger
-Symbol Tables
-Environment Block这些选项,有没有办法解决程序到了别人机子上就水土不服这个难题呢, 烦请各位大大指教, 小弟感激不尽.
出现Project Options for Project1.exe窗口,在左边选 Packages 出现如下图的东西,这样修改:
1> 将Runtime packages里的[ ]Build with runtime packages钩上
2> 将不需要的包去掉就行了。(一般编写Win32的程序,只要rtl;vcl就行)可是我的Options里根本就没有Packages这个选项,只有:forms
application
compiler
compiler Messages
Linker
Directories/Conditionals
Debugger
-Symbol Tables
-Environment Block这些选项,有没有办法解决程序到了别人机子上就水土不服这个难题呢, 烦请各位大大指教, 小弟感激不尽.
Windows, Messages, SysUtils,system.io, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, ExtCtrls, XPMan;
而程序生成的VCL的Unit1.Pas中的Use就不同unit Unit1;interfaceuses
Windows, Messages,system.io, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Borland.Vcl.StdCtrls, System.ComponentModel, Borland.Vcl.ComCtrls,
Borland.Vcl.ExtCtrls;而且Project1.dpr中也有不同, Demo中的是program Project1;{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Data.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Drawing.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.XML.dll'}uses
System.Reflection,
System.Runtime.CompilerServices,
SysUtils,
Forms,
Unit1 in 'Unit1.pas' {MainForm};而我以前的Project1.dpr中是这样的
program JnuChouQian;{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Data.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Drawing.dll'}
{%DelphiDotNetAssemblyCompiler '$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.XML.dll'}
{%DelphiDotNetAssemblyCompiler 'c:\program files\common files\borland shared\bds\shared assemblies\4.0\Borland.Vcl.dll'}
{%DelphiDotNetAssemblyCompiler 'c:\program files\common files\borland shared\bds\shared assemblies\4.0\Borland.Delphi.dll'}
{%DelphiDotNetAssemblyCompiler 'c:\program files\common files\borland shared\bds\shared assemblies\4.0\Borland.VclRtl.dll'}uses
System.Reflection,
System.Runtime.CompilerServices,
System.Runtime.InteropServices,
SysUtils,
Forms,
Unit1 in 'Unit1.pas' {Form1};差别不是很大,无非就是程序的Reference中有些不同, 但是一个Project中生成的EXE文件有1.4M,并且可以在别人的电脑上运行,而另一个编绎出来的程序就只有200K,拷别人机子上(装了.Net FrameWork1.1,但没装Delphi2006)一运行就出错, 为什么呢???
===============
这个是.NET的发布包,并不是我说的那一个。你看过deploy.html没?我这边已经在用RAD Studio 2007了,Delphi 2006早就不用了。