一些实验表明,各种建议的行动方案的以下方面可以发挥更全面的作用。
当您创建一个新的 Delphi 多目标项目(我们称之为 Foo)时,您会创建一个与 MSBuild 兼容的文件:Foo.dproj Delphi 项目文件。对于 Android(此问题中的平台),这足以构建目标 libFoo.so 库文件,该库文件最终将成为已部署的 .apk 文件的一部分,但还不足以制作 .apk 文件。
您可以使用如下命令行构建包含 ARM 机器代码的 .so 文件:
msbuild Foo.dproj /property:Config=Debug /property:Platform=Android /target:Build
或者这个更简洁的版本:
msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Build
根据the documentation,您可以使用部署管理器的部署按钮来创建一个额外的 MSBuild 文件,或者实际上只需选择 Project、Deploy libFoo.so 菜单项.此部署的初始步骤是创建一个 Foo.deployproj 文件,这是另一个与 MSBuild 兼容的文件。
使用 Foo.deployproj 文件,以下行将获取 libFoo.so 文件和部署所需的任何其他文件,并使用这些文件构建 .apk Android 应用程序包文件:
msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Deploy
如果所需的文件(例如 libFoo.so)不存在,Deploy 目标将失败,例如之前使用 Build 或 Make 运行 MSBuild em> MSBuild 目标:s(431,5):错误:找不到所需的本地文件“Android\Debug\libFoo.so”。部署失败。
此外,如果您没有为您的项目生成 Foo.deployproj 文件,Deploy 目标也会失败:错误 MSB4057:项目中不存在目标“Deploy”。 em>
也就是说,如果您有 Foo.deployproj,您可以通过以下方式一举构建和部署:
msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Build;Deploy
当然,要避免编译未更改的文件,这可能会更好:
msbuild Foo.dproj /p:Config=Debug /p:Platform=Android /t:Make;Deploy
文档没有提及任何关于 Deploy 目标的事实有点令人困惑。有可能认为这意味着您对 Foo.deployproj 文件运行 MSBuild,但这不会带来任何乐趣。文档似乎已过时或完全错误。