Joh*_*ter 1 delphi dcc32 delphi-10-seattle
Delphi 10 Seattle介绍了Winapi.Security.pas.我正在尝试升级的项目(包)已经有一个Security.pas文件.如果没有从项目范围名称列表中删除Winapi(巨大的不良涟漪效应),有没有办法告诉IDE和编译器使用项目的Security.pas文件而不是Winapi.Security.pas?
我已经尝试重命名项目Security.pas,但这导致了更多的问题,编译器生成的错误与它所抱怨的代码无关,所以这是一个rathole我宁愿现在不去.这个项目在XE7,FWIW中建立得很好,所以这不是由于项目中的任何代码更改.
更新:
看起来这可能实际上与Winapi.Security单元有关,而不是像你在问题中建议的那样通用.例如,以下包编译得很好:
package Package1;
requires
rtl;
contains
Windows in 'Windows.pas'; // blank unit named Windows.pas in project folder
end.
Run Code Online (Sandbox Code Playgroud)
请注意,我和您一样,包含Winapi在项目的单位范围名称列表中.
另一方面,这个包不编译:
package Package1;
requires
rtl;
contains
Security in 'Security.pas'; // blank unit named Security.pas in project folder
end.
Run Code Online (Sandbox Code Playgroud)
编译器失败:
[dcc32错误] Package1.dpk(7):E2200包'rtl'已包含单位'Winapi.Security'
如果问题纯粹与单元范围名称相关,那么两个软件包都会编译,或者两者都会失败.因此,我的结论是,有一些事情是不可能的Winapi.Security.
我找不到源代码Winapi.Security.我想知道它究竟是什么.[Nicholas Ring找到我的来源,在rtl\win\winrt目录中.]
无论如何,我认为是时候提交QP报告了.无法编译的下面的包可能是该QP报告的起点.[您提交的报告在此处为RSP-12469.]
我似乎很清楚,如果你想收养西雅图,你必须在短期内重新命名你的单位.
FWIW,这里有一些其他单位的行为方式如下Winapi.Security:
Winapi.ApplicationModelWinapi.CommonTypesWinapi.DevicesWinapi.FoundationWinapi.GamingWinapi.GlobalizationWinapi.GraphicsRTWinapi.ManagementWinapi.MediaWinapi.NetworkingWinapi.StorageWinapi.UIWinapi.WebRT这些都是新增的WinRT单元,我认为这些单元非常重要.