当我在Delphi XE2中打开Delphi 7项目并打开项目选项时,我收到一个错误:
"Unable to set Icon: Cannot open file "........\AppName_Icon.ico".
The system cannot find the file specified".
Run Code Online (Sandbox Code Playgroud)
我还注意到项目的版本信息丢失了.Delphi 7项目的.Res文件包含MAINICON以及存储的版本信息.为什么Delphi XE2无法使用此.Res文件来检索MAINICON和版本信息.
此外,如果我尝试在XE2中编译应用程序,我会收到错误 -
[BRCC32 Error] MtxReq.vrc(2): file not found: MtxReq_Icon.ico
Run Code Online (Sandbox Code Playgroud)
创建MTXReq.vrc文件(新文件)并删除MtxReq.res文件.
为什么会这样?我不想从.res文件中删除我的项目图标和版本设置.
有没有办法强制XE2使用.res文件而不删除它?
任何帮助将不胜感激.
对不起,我还不能发表评论(需要更多的报道点数)...
沃伦 - 这里是对你的问题的回应(不只是删除你的.dproj文件,只保留.dpr,速度更快?)
我删除了.dproj,.dproj.local在XE2中打开了.dpr并重新创建了.dproj文件.它从.res中取回了图标,但我丢失了项目版本信息.仅迁移了文件版本和产品版本信息,但丢失了所有其他版本信息.(这是因为默认的清单文件).然后我尝试了我在解决方案的第1步中解释的内容.我在记事本中打开.dproj文件删除了标签条目并重新打开.dproj文件,现在我的所有版本信息都被恢复了.这里的问题是$(BDS)\ bin\default_app.manifest.此外,我注意到版本信息存储在.dproj文件中的标记下的标记中,一旦删除了默认清单条目,IDE就会正确地从中获取版本密钥信息.
所以基本上通过删除.dpr文件我跳过了提取和添加.ico文件到项目的步骤,但是必须编辑新创建的.proj文件并删除默认清单的条目以检索版本信息.(另一个解决方案是手动添加版本信息并保存项目.我没试过这个)
War*_* P 13
更新2015:Remy关于手动重新创建.DPROJ文件的想法是非常好的建议,应该首先考虑,即使我的答案被标记为已被接受.
XE2之前的Delphi版本在编译过程中将资源文件用作INPUT和OUTPUT.例如,您的delphi 7项目图标嵌入在该文件中,您"希望delphi xe2使用",但是,这在delphi 7中存在问题,现在在XE2中无法实现.相反,您现在将.res文件视为纯输出工件,与可执行文件相同.不要再费心检查.res文件到版本控制,也不要试图假装.res文件是永久存储图标的地方.它是由编译器自动生成的输出文件,因为它始终应该是.
如果你是一个现代开发人员,Delphi 7工作的旧方式可能会让你烦恼(它确实让我烦恼),因为你有一个有趣且不可解决的问题,关于如何为版本控制做什么:你检查.RES文件,还是不要你呢?这两种方法都有缺点,而且.RES文件现在仅在XE2中输出工件这一事实是最好的.所以要学会与之共存.
既然XE2不仅支持PC的图标,而且支持Mac的图标,它必须以不同的方式处理事物,并且已经清理了它.这是您在.ICO文件中看到的问题的根源.我已经看到了完全相同的错误,我忽略了它,只是在转换后将图标添加回项目.
将delphi 7项目(.dpr和.cfg)转换为Delphi XE2并不像各种级别的.dproj文件之间的转换那么大 - 每个版本都以Delphi 2005,2007,2009,2010开头,并且已经实现dproj格式的变化.当转换这些项目出现问题时,我没有像雷米所说的那样做,因为这是浪费时间.我所做的是删除DPROJ并让它仅从.dpr文件转换.
但是Remy建议从头开始有很多优点,包括你可以简化你的项目布局.
无论如何,这是你做的:
一如既往,您永远不应让IDE将项目从旧版本转换为较新版本.转换RARELY正常工作.您应始终在较新的IDE中创建新项目,然后根据需要将现有源文件添加到其中.
归档时间: |
|
查看次数: |
8575 次 |
最近记录: |