msbuildで動的に生成されたC#ファイルの問題
質問
C#ファイルの作成に使用されるソースXMLファイルがあり、プロジェクトの一部としてコンパイルされます。
現在、XMLからC#へのコンバーターを実行するBeforeBuildターゲットがあります。
問題は、BeforeBuildステップが実行されるまでに、古いファイルがビルドシステムによって保存されているように見えるため、新しいファイルが無視されることです。
どうすればこれを回避できますか?変換は方法のようですが、できることは限られています。
解決
<!> quot;ビルドシステムに格納されている<!> quot;コンパイル対象が実行されるときではなく、msbuildファイルが読み取られるときに、コンパイルする.csファイルを含むItemGroupが生成されるため、翻訳できます。いくつかのオプションがあります:
-
<CreateItem>
CreateItemタスク を参照
-
<Output>
出力要素 を参照
これが役立つことを願っています。
他のヒント
さて、ここには似たようなものがあります。 .ttを使用して、xmlファイルから.csを生成します。両方のファイルは、特定のcsprojの一部です。 csprojのプロパティ-<!> gt; BuildEventsに移動すると、ビルド前のイベントコマンドラインに次の小さなスニペットが表示されます。
del "$(ProjectDir)MyCsFile.cs"
copy /b /y "$(ProjectDir)\MyXmlFile.xml" "$(TargetDir)"
"$(ProjectDir)tt.bat" "$(ProjectDir)MyTemplateFile.tt"
それがあなたに役立つかどうかはわかりませんが、ラストチャンスの回避策として十分であると思います。
ルール/ビルドファイルの一部を表示する必要があると思います。依存関係としてxmlを持つcsファイルのルール/依存関係が必要です。
<!> quot;ビルドシステムに格納されている<!> quot;の意味がわかりません
エラー/脱落がないかルールを注意深く確認してください。
所属していません StackOverflow