0

プロジェクトの一部としてコンパイルされる C# ファイルを作成するために使用されるソース XML ファイルがあります。
現在、XML から C# へのコンバーターを実行する BeforeBuild ターゲットがあります。
問題は、BeforeBuild ステップが実行されるまでに古いファイルがビルド システムによって保存されているように見えるため、新しいファイルが無視されることです。

どうすればこれを回避できますか? Transforms がその方法のようですが、できることは限られています。

4

3 に答える 3

1

コンパイルターゲットが実行されるときではなく、msbuildファイルが読み取られるときに、コンパイルする.csファイルを含むItemGroupが生成されるため、「ビルドシステムによって保存された」と変換できると思います。いくつかのオプションがあります。

  1. <CreateItem>CreateItemタスクを参照してください
  2. <Output>出力要素を参照してください

これがお役に立てば幸いです。

于 2009-05-18T20:22:14.117 に答える
0

ルール/ビルド ファイルを少し見せていただく必要があると思います。依存関係としてxmlを持つcsファイルのルール/依存関係が必要です。

「ビルドシステムによって保存された」とはどういう意味かわかりません

ルールに誤りや漏れがないか注意深く確認してください。

于 2008-11-03T20:37:43.843 に答える
0

ここにも似たようなものがあります。.tt を使用して xml ファイルから .cs を生成します。どちらのファイルも特定の csproj の一部です。csproj で properties->BuildEvents に移動すると、ビルド前イベントのコマンド ラインに次の小さなスニペットが表示されます。

del "$(ProjectDir)MyCsFile.cs"
copy /b /y "$(ProjectDir)\MyXmlFile.xml" "$(TargetDir)"
"$(ProjectDir)tt.bat" "$(ProjectDir)MyTemplateFile.tt"

それがあなたにとって役立つかどうかはわかりませんが、最後のチャンスの回避策として十分であることを願っています.

于 2008-11-03T18:11:38.897 に答える