[英]Vs2017 / C# weird debugger behavior
我在 C# 項目(目標 .Net Framework 4.7.2)的調試版本中被奇怪的行為所困擾。
var wHasOvernightShifts = this.ScheduleSegments.Any(
x => x.SegmentTypeId == eSegmentType.Schedule
&& !x.IsDeleted
&& x.ShiftDate == pShiftDate
&& x.StartTime.Value.DayOfWeek != x.FinishTime.Value.DayOfWeek);
我知道這是錯誤的答案。 當我在 Quick Watch 中評估 RHS(在相同點使用相同數據)時,相同的代碼返回 true。 退回調試器並重新執行該語句再次返回false。 (nb 所有引用的屬性都沒有副作用)。
如果我執行清理和重建,那么一切都會按預期進行。 請注意,僅重建是不夠的。
在情況 2 中,在清理/重建之后,該方法返回一個非空集合並且其中的斷點起作用,就像 step-into 一樣。
貌似編譯器的增量部分壞了,或者執行環境剛剛忘記加載了模塊。
有沒有其他人遇到過類似的問題? 有沒有簡單的解決方案(除了清理/重建)?
nb 我已關閉“僅啟用我的代碼”並打開“要求源文件與原始版本完全匹配”以嘗試解決此問題 - 沒有運氣。
自從我更新項目以確保每個配置都構建到一個單獨的目錄中以來,已經有幾個星期了。 問題似乎已經消失了。
我很確定這是解決問題的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.