.csproj
メイン ビルドの前にいくつかのカスタム タスクを実行するようにプロジェクトをカスタマイズしています。ただし、タスクをまったく実行できません。
<Target Name="BeforeBuild" />
ファイル内の要素のコメントを解除し.csproj
、単純なメッセージ タスクを追加しましたが、ビルドすると出力にメッセージが表示されないため、タスクが実行されていないようです。したがって、このフラグメントはメッセージを出力しません。
リスト 1: メッセージが表示されない
<Target Name="BeforeBuild">
<Message Text="About to build ORM layer" Importance="normal" />
</Target>
ただし、一部の属性.csproj
を台無しにすると、実行にまったく失敗する可能性があります。
リスト 2: MSBuild 構成エラー
<Target Name="BeforeBuild">
<Message Text="About to build ORM layer" XXImportance="normal" />
</Target>
XXImportance
属性に注意してください。私が得るビルドエラーは
My.csproj(83,46): error MSB4064: The "XXImportance" parameter is not supported by the "Message" task. Verify the parameter exists on the task, and it is a settable public instance property.
これは、XML が解析されていること、Message
クラスが見つかったこと、およびクラスが使用可能なプロパティに反映されていることを示しています。
タスクが実行されないのはなぜですか?
私は3.5フレームワークを使用しています。
更新 1: @Martin のアドバイスで、コンソールで MSBuild を実行しようとしたところ、このエラーが発生しました。
c:\path\to\my.csproj(74,11): error MSB4019: The imported
project "C:\Microsoft.CSharp.targets" was not found. Confirm
that the path in the <Import> declaration is correct, and that
the file exists on disk.
行 74 読み取り;
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
更新 2: C#3 コンパイラを使用する VS2008 でコンパイルしていますが、コンパイルしているプロジェクトはフレームワーク 2.0 プロジェクトです。Microsoft.CSharp.targets
コマンド ラインから実行すると (UPDATE 1 を参照)、ファイルが指定されている場所が混乱するため、ビルドが失敗したように見えます。