-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
クリーン時に成果物が削除されるようにする #858
クリーン時に成果物が削除されるようにする #858
Conversation
MsBuildがクリーン時に参照する削除ファイルリストにファイル名を追加し、 カスタム成果物がクリーン対象になるようにする。 $(IntDir)と$(OutDir)に出力するファイルは、クリーン対象に含めることができる。 他のパスに出力する生成ファイルはこの方法では削除できないので別の手を考える必要がある。
の通りになるのを確認しました。 |
この PR を対応するのにあたって、どういう資料を参照しましたか? |
ググって出てきた資料+MsBuildタスクのソースコードです。 stackoverflowとかmsdn magazineとか見た気がするので、参照したと思われるリンクを貼っておきます。 https://stackoverflow.com/questions/3497375/msbuild-adding-files-to-be-cleaned-in-a-build なんか、.NET系のgithub issueで直接的な例示を見た気もするんですけど、見つかりませんでした 😭 |
https://github.com/search?q=extension%3Avcxproj+CoreClean https://github.com/HEZBON/demo2/blob/8954fb0169eb8321749d2c5e68f7aa66c780f6e4/Desktop/python.py/Python-3.6.5/PCbuild/_freeze_importlib.vcxproj#L113-L118 参考: https://help.github.com/en/articles/searching-code#search-by-file-extension |
<Target Name="_CleanImportLib" BeforeTargets="CoreClean">
<ItemGroup>
<Clean Include="$(IntDir)importlib.g.h" />
<Clean Include="$(IntDir)importlib_external.g.h" />
</ItemGroup>
</Target> まぁ、好みの問題ですね。
このPRで削除対象をマークするノード名は 定義したリストを、 記述量が少ないことは、たいていの場合「いいこと」ですが、 |
他でも使ってる方法でいけるのであれば、そのほうがいいと思いますし、 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
対応ありがとうございます。
|
おや? マージしないんですか? |
レビューありがとうございます。 |
…lean_targets クリーン時に成果物が削除されるようにする
目的
クリーン時に、bregonig.dllとtags.exeが出力フォルダに残るので消すようにする。
対処内容
MsBuildがクリーン時に参照する削除ファイルリストにファイル名を追加し、
カスタムビルドの成果物がクリーン対象になるようにする。
確認方法
Win32/$(Configuration)
にビルド成果物が生成されるのを確認する。Win32/$(Configuration)
を確認する。bregonig.dllが削除されず残っているWin32/$(Configuration)
にビルド成果物が生成されるのを確認する。Win32/$(Configuration)
を確認する。フォルダは空になるWin32/$(Configuration)
にビルド成果物が生成されるのを確認する。関連する課題
他のパスに出力する生成ファイル(githash.hやfunccode_enum.h等) はこの方法では削除できないので別の手を考える必要がある。
ファイルが残る原因は、現状のカスタムタスクが「ビルドステップの一部」ではなく「単なるバッチ処理」として書かれているために、MsBuildから見て生成ファイルを「出力ファイル」と認識できないことにある。本来は「出力ファイルがあるカスタムタスク」に書き換えていく試みが必要と考えられる。
この PR では、本当に必要な対処に目をつぶり、当座の「クリーンしたけどファイルが消えない」を解消するだけの単純対処を提供する。