1. 14 4月, 2017 1 次提交
  2. 12 4月, 2017 2 次提交
  3. 11 4月, 2017 1 次提交
  4. 08 4月, 2017 1 次提交
  5. 04 4月, 2017 1 次提交
  6. 01 4月, 2017 6 次提交
  7. 23 3月, 2017 1 次提交
  8. 21 3月, 2017 2 次提交
  9. 20 3月, 2017 1 次提交
  10. 18 3月, 2017 4 次提交
  11. 16 3月, 2017 5 次提交
    • K
      Pick the right project for P2P refs in lightweight solution load and cross-targeting. · 75000286
      Kevin Pilch 提交于
      If a project being loaded in lightweight solution load references a CPS project
      that does cross-targeting, we may crash trying to hook up P2P references,
      because we were looking for a single project matching the project file name, and
      language.  In the case of cross-targeting though, we create a project for each
      TFM, and the .Single call would blow up.
      
      To fix this, we now continue looking through projects until we find one with an
      output path that matches our reference.
      
      Fixes #17570.
      75000286
    • T
      Handle FileCodeModel eventing on the foreground thread · 29dd02bf
      Tom Meschter 提交于
      Fixes https://devdiv.visualstudio.com/DevDiv/_workitems?_a=edit&id=366045.
      
      CodeModel events (fired when types or members are added or removed,
      for example) are handled in a `SolutionCrawler` incremental analyzer.
      Actually firing the events needs to happen on the foreground thread,
      which we currently do. Some of the setup, including obtaining the
      `FileCodeModel` instance, happens on a background thread.
      
      It turns out the `FileCodeModel` must also be obtained on the
      foreground thread but we don't enforce this very well. Most of the time
      we go down this path the `FileCodeModel` instance has already been
      created and cached; in this case we get lucky and don't go down any
      problematic paths. However, if we _do_ need to create it then we may
      also need to start pushing project data down to the workspace. That can
      only happen on the foreground thread, and we *do* enforce it there.
      
      This often manifests as a crash during solution close. Something has
      caused the incremental analyzer to run on a background thread.
      Meanwhile, the foreground thread is closing the solution, which means
      we are no longer pushing project data to the workspace. If the
      `FileCodeModel` has not already been cached we'll try to create a new
      one and start pushing to the workspace--and then we blow up because
      we're on the wrong thread.
      
      Further, the `FileCodeModel.FireEvents()` method returns a bool indicating
      whether or not it has more work to do. If it has more work, we need to
      post that work back to the foreground thread. Of course, by the time that
      subsequent work runs the project or solution may have closed, or the
      document in question may no longer exist. So the setup work--mapping from
      the `DocumentId` to the `Project` and file path--also need to happen on the
      foreground thread.
      
      The fix is to do _all_ the setup work on the foreground thread, and to do
      it every time it runs. If the `FileCodeModel` has already been cached things continue to work as before.
      If it hasn't, and we try to create it during shutdown then the request
      to push to the workspace will fail gracefully. No `FileCodeModel` will
      be created, and the incremental analyzer will just bail early.
      29dd02bf
    • J
      Merge pull request #17845 from dpoeschl/DontDeadlockOnSolutionCloseWithLinkedFiles151 · e990d8f7
      Jason Malinowski 提交于
      Avoid deadlock on solution close with linked files
      e990d8f7
    • H
      Merge pull request #17786 from heejaechang/circularref2 · 8affd7f1
      Heejae Chang 提交于
      don't convert metadata reference to project reference. this workspace…
      8affd7f1
    • D
      Capture better dumps when the contents of linked files don't match · 0264ef24
      David Poeschl 提交于
      In order to gather more information on
      https://devdiv.visualstudio.com/DevDiv/_workitems?id=209299, we created
      https://github.com/dotnet/roslyn/pull/16918 to capture the text of the
      linked documents that aren't in sync. However, we tried to do so by
      putting their text in local variables that were optimized away in dumps.
      
      This change introduces a custom exception object that holds onto the
      text of the conflicting documents and reports that exception.
      0264ef24
  12. 15 3月, 2017 5 次提交
  13. 14 3月, 2017 5 次提交
  14. 11 3月, 2017 4 次提交
  15. 10 3月, 2017 1 次提交