https://github.com/sakura-editor/sakura/pull/207#issuecomment-402846306 で指摘した点です。
これはこの PR の問題ではなくそれ以前からある問題のようなのですが、
msbuild-xxx-xxx.log に含まれる Warning が実際の Warning 数の2倍の数になっています(重複した Warning が出力されています。
結果として .csv 側にも重複した Warning が記録される形になっています。
これがすごく困るかというと、別にそうでもないので(単に Warning を1件修正したらビルドログの Warning 件数が2件減るだけ)優先度は低めで考えて良いと思います。
これがすごく困るかというと、別にそうでもないので(単に Warning を1件修正したらビルドログの Warning 件数が2件減るだけ)優先度は低めで考えて良いと思います。
workaround の対応自体は簡単なので対応しました。
ログ自体の問題はそのままなので
このチケットはクローズしない
https://github.com/sakura-editor/sakura/compare/master...m-tmatma:feature/issue217-fix-log
を試してみたが、関係なかった。
https://stackoverflow.com/questions/44582185/duplicate-error-messages-in-dotnet-core
とかを見るとビルドの最後にサマリーを出力しているみたい。
以下のように /clp:NoSummary をつけてビルドしても、なぜかサマリーを出さないようにできなかった。
diff --git a/build-sln.bat b/build-sln.bat
index 378139fb..8c7dc9a9 100644
--- a/build-sln.bat
+++ b/build-sln.bat
@@ -16,8 +16,8 @@ set LOG_OPTION=/flp:logfile=%LOG_FILE%
set MSBUILD_EXE="C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe"
-@echo %MSBUILD_EXE% %SLN_FILE% /p:Platform=%platform% /p:Configuration=%configuration% /t:"Clean","Rebuild" %EXTRA_CMD% %LOG_OPTION%
- %MSBUILD_EXE% %SLN_FILE% /p:Platform=%platform% /p:Configuration=%configuration% /t:"Clean","Rebuild" %EXTRA_CMD% %LOG_OPTION%
+@echo %MSBUILD_EXE% %SLN_FILE% /clp:NoSummary /p:Platform=%platform% /p:Configuration=%configuration% /t:"Clean","Rebuild" %EXTRA_CMD% %LOG_OPTION%
+ %MSBUILD_EXE% %SLN_FILE% /clp:NoSummary /p:Platform=%platform% /p:Configuration=%configuration% /t:"Clean","Rebuild" %EXTRA_CMD% %LOG_OPTION%
if %errorlevel% neq 0 (echo error && exit /b 1)
@echo call parse-buildlog.bat %LOG_FILE%
参考 (/clp:NoSummary 等のヘルプ)
https://msdn.microsoft.com/ja-jp/library/ms164311.aspx
#207 (comment) で指摘した点です。
これはこの PR の問題ではなくそれ以前からある問題のようなのですが、
msbuild-xxx-xxx.log に含まれる Warning が実際の Warning 数の2倍の数になっています(重複した Warning が出力されています。
結果として .csv 側にも重複した Warning が記録される形になっています。これがすごく困るかというと、別にそうでもないので(単に Warning を1件修正したらビルドログの Warning 件数が2件減るだけ)優先度は低めで考えて良いと思います。
書いてある実害「.csv 側にも重複した Warning が記録される」は、既に解決しているようです。
ログ見てみると分かるんですが、警告出力がダブってるわけではないです。
ファイルのコンパイル時、その場で出している警告出力と、
プロジェクトのビルド完了時の警告出力の2種類なので、出力目的が違います。
世間一般的には、まったく同じ内容であっても「目的が違うなら何度出してもOK」だと思います。
ビルドバッチは「可能な限りログを出す」という方針でやってるようなので、
二重だろうと三重だろうと出るのが正しいように思います。
個人的には、目的が違っても同じものを何度も出さないようにしたい派ですが、出したいなら出せばよいとも思っています。
出したいなら出せばよい、と考えたとすると、目的の違う2種類のログが出ていることの何が悪い?になるような気がします。
目的に違う出力を消せない https://github.com/sakura-editor/sakura/issues/217#issuecomment-410391986 って話は、MsBuildの問題でぼくらのプロジェクトの責任ではないので放置してよいと思います。
というわけで、閉じてしまいます。