我创建了一个自定义的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>
作为一个独立文件,这个程序的运行符合预期:输入...
MSBuild Custom.target /t:Hello
在命令行中输入指定命令会得到预期的消息。
通过IDE将
Custom.targets
添加到Delphi项目中,可以如预期地在项目管理器中显示该文件,并且.dproj
文件现在包含以下行...<TargetsFile Include="Custom.targets"/>
我在IDE的项目管理器中右键单击文件并选择启用
。但是,当项目构建时,构建
消息窗口显示如下:
[MSBuild Warning] Custom.targets(1): 忽略已禁用的导入:
PathToProjectSource\\Custom.targets
在项目管理器中再次右键单击仍然显示启用
选项,而不是预期的禁用
选项。
在命令行中运行MSBuild ProjectName.dproj /t:Hello
也会失败。
我尝试修改.dproj
文件添加以下行...
<Import Project="Custom.targets"/>
现在键入
MSBuild ProjectName.dproj /t:Hello
是有效的。但是下一次我从IDE保存项目文件时,<Import>
语句将被删除。请问有人知道出了什么问题吗?
/t:Hello
从命令行提示符构建以及在IDE中通过右键单击项目管理器 - 目标 - Hello进行构建。我通过右键单击项目管理器 - 添加 - (浏览文件)将Custom.targets
添加到了该项目中。路径与.dproj
文件相同目录。 - Ondrej Kelle