177

.targetsIDE を介して Delphi XE プロジェクトに含めたカスタム MSBuild ファイルを作成し、プロジェクト マネージャのコンテキスト メニューから有効にしました。ファイルは検証されますが、プロジェクト ファイルを再保存すると、常に無効になります。

という名前のターゲット ファイルの簡略化されたバージョンを次に示します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

...コマンドラインで、予想されるメッセージが表示されます。

Custom.targetsIDE 経由で Delphi プロジェクトに追加すると、プロジェクト マネージャにファイルが期待どおりに表示され、ファイルに.dprojは次の行が含まれるようになりました...

<TargetsFile Include="Custom.targets"/>

IDE の Project Manager でファイルを右クリックし、Enable. しかし、プロジェクトがビルドされると、Buildメッセージ ウィンドウが表示されます。

[MSBuild 警告] Custom.targets(1): 無効化されたインポートを無視します:PathToProjectSource\\Custom.targets

Project Manager でもう一度右クリックするEnableと、予期された ではなくオプションが表示されDisableます。

コマンドラインMSBuild ProjectName.dproj /t:Helloでも失敗します。

.dprojファイルをハッキングして行を追加しようとしました...

<Import Project="Custom.targets"/>

タイピングMSBuild ProjectName.dproj /t:Helloが機能するようになりました。しかし、次に IDE からプロジェクト ファイルを保存すると、<Import>ステートメントが削除されます。

何がうまくいかないのか誰にも分かりますか?

4

2 に答える 2

1

Delphi は dproj コンテンツ全体を生成し、このカスタム インポートは常に削除されます。

独自の msbuild xml ファイルを作成できますが、dproj は Delphi に属しています。

ソースコードを持っているか、IDE にモンキー パッチを適用する気がない限り、それはできません。

Delphi プロジェクトを構築し、たくさんのターゲットを作成するための柔軟な xml の方法が本当に必要な場合は、want または want vnext (bitbucket の私のフォーク) を試してください。

于 2015-11-26T23:42:19.510 に答える