1. 14 5月, 2015 5 次提交
  2. 13 5月, 2015 7 次提交
  3. 12 5月, 2015 6 次提交
  4. 10 5月, 2015 1 次提交
    • J
      Remove references to Desktop projects · 817fe8c5
      Jared Parsons 提交于
      This removes the majority of references to the deprecated Desktop
      assemblies.  The only remaining ones are in the VSIX projects.  They
      must remain until we actually delete the assemblies.
      817fe8c5
  5. 09 5月, 2015 5 次提交
  6. 08 5月, 2015 2 次提交
  7. 07 5月, 2015 14 次提交
    • T
      ecec6d48
    • T
      Remove `CompilerServerFileWatcher` from vbcscompiler.exe · b615c03e
      Tom Meschter 提交于
      Now that we have checks in place to ensure that the specified set of
      analyzer assemblies are the ones that will actually be used for a given
      build, we can remove the `CompilerServerFileWatcher` type entirely. This
      type watched for changes to analyzer assemblies on disk, stopped
      accepting new build requests when it saw any, and then shut down
      vbcscompiler.exe once all the pending builds were complete. The goal was
      to avoid using an older-but-already-loaded analyzer assembly when there
      was a newer one on disk. The new consistency checks are a more reliable
      means of achieving the same ends.
      
      Fixes #2324.
      Fixes #2377.
      Fixes #2495.
      b615c03e
    • T
      Small refactoring of `AnalyzerConsistencyChecker`. · d72e5ed5
      Tom Meschter 提交于
      1. Update the `Check` method to use `IEnumberable<...>` instead of
      `ImmutableArray<...>` for the input parameters.
      2. Make the `referenceWhiteList` parameter optional, and provide a
      reasonable default.
      d72e5ed5
    • T
      Add a copyright header. · 91fbff70
      Tom Meschter 提交于
      91fbff70
    • T
      Reject builds with analyzer inconsistencies · 27e7fa19
      Tom Meschter 提交于
      This commit updates vbcscompiler.exe to reject builds where the list of
      analyzers is incomplete (i.e., some of the analyzers depend on
      assemblies that are not present), we're unable to load the analyzers, or
      the assemblies on disk do not actually match the ones that are loaded.
      
      If one of these checks fails the build request is rejected, and the
      clients have been updated to fall back to running the build in their own
      process (that is, csc.exe or vbc.exe).
      
      It is possible in some cases that a build that was rejected by
      vbcscompiler.exe will succeed in csc.exe/vbc.exe. Generally this will
      occur when an analyzer dependency is not passed via the `/analyzer`
      switch but happens to be in a place where the CLR will find and load it
      automatically. We want to ensure consistency which is why these builds
      are not allowed in vbcscompiler.exe; otherwise we risk a build sometimes
      succeeding and sometimes failing depending on which assemblies happen to
      have been loaded by other, unrelated builds.
      27e7fa19
    • T
      Implement code review feedback · aa45eec3
      Tom Meschter 提交于
      1. Replace `MvidsMatch` with the more general `ReadMvid`.
      2. Replace `HasStrongName` with the more general `GetAssemblyIdentity`.
      3. Assert that we're being given full paths.
      aa45eec3
    • T
      Implement code review feedback · 36223338
      Tom Meschter 提交于
      1. Make it clear that the methods of `AssemblyUtilities` may throw. They
      do not catch and process exceptions themselves as we expect different
      hosts will need to respond in different ways.
      2. Use `Debug.Assert(...)` to validate parameters on internal methods
      rather than throwing `ArgumentNullExceptions`.
      36223338
    • T
      Add a method to check for strong-named assemblies · 252db15d
      Tom Meschter 提交于
      Add a utility method to check for strong-named assemblies.
      
      `AssemblyUtilities.HasStrongName` uses the metadata reader to check if
      the assembly at a given path has a strong name or not.
      
      This commit includes the code itself and a couple of unit tests. A later
      commit will wire it into the compilers/VS.
      252db15d
    • T
      Add a utility method identify missing dependencies · 6f60f43d
      Tom Meschter 提交于
      Add a utility method to identify which of an given assembly's references
      are missing from an input set.
      
      This includes the code itself and unit tests. It will be wired into the
      compilers/VS in a later commit.
      6f60f43d
    • T
      Add a method to check that MVIDs match · f4283ffb
      Tom Meschter 提交于
      Add a utility method to check that MVIDs match.
      
      Given a path to an assembly and a loaded `Assembly` object,
      `AssemblyUtilities.MvidsMatch` returns true if their MVIDs (Module
      Version IDs) match, and false otherwise.
      
      This commit contains the code itself and unit tests; a later commit will
      wire this into the compilers/VS.
      f4283ffb
    • T
      Add a utility method to find assembly dependencies · 526b85d2
      Tom Meschter 提交于
      Add a utility method to find assembly dependencies.
      
      Given a path to an assembly, `AssemblyUtilities.FindAssemblySet`
      identifies file in the same directory that could satisfy the assembly's
      dependencies.
      
      This commit contains just the code itself and some unit tests. A later
      commit will wire it into the compilers/VS.
      526b85d2
    • C
    • A
      Another round of compatibility fixes in Overload Resolution. · e828e02b
      AlekseyTs 提交于
      Fixes #2533.
      e828e02b
    • J
      Typo · 5534a55a
      Jared Parsons 提交于
      5534a55a