我已经创建了一个自定义的MSBuild .targets
文件,我通过IDE将其包含在Delphi XE项目中,并从项目管理器的上下文菜单中启用它.虽然文件验证,但在重新保存项目文件后它总是被禁用.
这是目标文件的简化版本,名为Custom.targets
.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Hello">
<Message Text="Hello from custom target"/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
作为一个独立的文件,这按预期工作:输入...
MSBuild Custom.target /t:Hello
Run Code Online (Sandbox Code Playgroud)
...在命令行中给出了预期的消息.
Custom.targets
通过IDE 添加到Delphi项目会按预期在项目管理器中显示该文件,该.dproj
文件现在包含该行...
<TargetsFile Include="Custom.targets"/>
Run Code Online (Sandbox Code Playgroud)
我在IDE的项目管理器中右键单击该文件并进行选择Enable
.但是在构建项目时,Build
消息窗口显示:
[MSBuild警告] Custom.targets(1):忽略禁用导入:
PathToProjectSource\\Custom.targets
在项目管理器中再次右键单击仍显示该Enable
选项而不是预期Disable
.
在命令行MSBuild ProjectName.dproj /t:Hello
也失败了.
我试过黑客攻击.dproj
文件添加行...
<Import Project="Custom.targets"/>
Run Code Online (Sandbox Code Playgroud)
打字MSBuild ProjectName.dproj /t:Hello
现在有效.但是下次我从IDE保存项目文件时,<Import>
语句将被删除.
有人知道出了什么问题吗?