他にも組み込みリソースをソリューション内の他のプロジェクトに追加するカスタムMSBuildタスクがあります。私はそれらのプロジェクトを構築したいと思うリソースを追加した後、私はVisual Studio内でこれを得ることができないことがわかりました。他のソリューションプロジェクトをビルドするためのMSBuildタスクはVSで失敗しますが、MSBuild.exeコマンドラインでは動作します
テストするために、私はカスタムタスクを完全に取り除き、SilverlightソリューションのWebプロジェクトで簡単なAfterBuildターゲットを再定義しました。ターゲットは、溶液中のSilverlightアプリケーションプロジェクトをビルドするためのMSBuildタスクを使用し、次のようになります。
<Target Name="AfterBuild">
<PropertyGroup>
<LinkedProject>..\SilverlightApplication1\SilverlightApplication1.csproj</LinkedProject>
</PropertyGroup>
<MSBuild Condition="'$(LinkedProject)' != '' "
Projects="$(LinkedProject)"
Targets="Build"
Properties="CustomFlag=true" >
</MSBuild>
</Target>
奇妙なことは、コマンドラインからのMSBuildを使用している場合、これはまだビジュアルでは動作しません、完璧に動作していることですWebプロジェクトを構築するときのスタジオ私はこれがSilverlightの問題の一種かもしれないと思っていましたが、代わりに.NETクラスライブラリプロジェクトをビルドしましたが、結果は同じでした。コマンドラインからは動作しましたが、VSでは動作しませんでした。 VSでは、実際のエラーはありません.Cscタスクはアセンブリをコンパイルせず、出力も生成しません。
Visual Studioでこれを行うには、何が必要ですか?
私はDiagnosticを冗長に使用していますが、なぜCscタスクが出力を生成しないのかはわかりません。私はカスタムプロパティを使ってビルドターゲットを呼び出しています。テストケースでは、 "CustomFlag"と呼びました。これは、MSBuildタスクが既にビルドされている場合でもプロジェクトをビルドするのに十分だと思います。 CoreCompileターゲットが呼び出され、Cscタスクでさえ、何もしません。また、ここではテストでWebアプリケーションプロジェクトのAfterBuildターゲットを使用していますが、私のアプリケーションはCoreBuildの最後に挿入される.targetsファイルを使用しています。 –