質問

カスタムMSBuildタスクのライブラリがあり、定期的に編集して、コードをリファクタリングし、新しいタスクを追加し、古い、機能しなくなったタスクを削除しています。.Targetsファイルを編集して、実際にライブラリにあるものと同期するのは面倒になっているので、これを自動化するための最良の方法は何でしょうか?

ライブラリが正常にビルドされた後に実行されるソリューションが欲しいので、他のプロジェクトからカスタムタスクを呼び出そうとしたときに厄介なエラーが発生しません。

これを行う方法についていくつかのアイデアがありますが、他の人が最初に思いついたものを確認したいと思います。:-)

役に立ちましたか?

解決 2

そうですね、 MSBuild Community Task TaskSchemaを使用してこれを実現するためのより良い方法を見つけました。タスク: ジェネラコディセタグプレ

MSBuild.Community.Tasks.Targetsファイルをインポートしたことを確認し、すべてのタスクアセンブリ(ショッカー)を含むItemGroupという名前のMyTaskAssemblyを作成してから、上記のタスク呼び出しをプロジェクトのAfterBuildターゲットに貼り付けます。甘い!:)

他のヒント

タスクへの参照のみを含む別の.targetsファイルがある場合があります。片側からメインの.targetsファイルにリンクします。他の上書きから、タスクソリューションのAfterBuildターゲットで別の「マスター」カスタムタスクを実行します。この「マスター」タスクは、新しく構築されたアセンブリからITaskを実装するすべてのクラスを取得し、それらを.targetsファイルに書き込みます。
しかし、正直なところ、これは私にはやり過ぎのように見えます。新しいタスクを使用するには、とにかく.targetsファイルを編集する必要があります。このような「マスター」タスクを作成してサポートするには、さらに時間がかかる場合があります。

さらにいくつかの自動化されたソリューションを想像するかもしれませんが、「投資された時間」/「自動化によって節約された時間」を考慮すると、想像力が失われます。=)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top