Merge pull request #884 from sharwell/extension-testing

SDK integration testing
This commit is contained in:
Sam Harwell 2021-10-29 11:07:22 -07:00 коммит произвёл GitHub
Родитель 27fe3d6060 10e46ded6d
Коммит e7e67fa734
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
17 изменённых файлов: 91 добавлений и 76 удалений

Просмотреть файл

@ -11,6 +11,8 @@ pr:
variables:
- name: DOTNET_ROOT
value: $(Build.SourcesDirectory)\.dotnet
- name: XUNIT_LOGS
value: $(Build.SourcesDirectory)\artifacts\log\$(_configuration)
jobs:
- job: Windows
@ -29,11 +31,11 @@ jobs:
_configuration: Release
_solution: Samples
SDK Debug Test:
_args: -test
_args: -test -integrationTest
_configuration: Debug
_solution: Roslyn-SDK
SDK Release Test:
_args: -test
_args: -test -integrationTest
_configuration: Release
_solution: Roslyn-SDK
SDK Pack:
@ -54,7 +56,7 @@ jobs:
ArtifactName: '$(_solution) $(_configuration) logs'
publishLocation: Container
continueOnError: true
condition: failed()
condition: not(succeeded())
- task: PublishTestResults@2
inputs:
testRunner: 'xUnit'

Просмотреть файл

@ -19,8 +19,8 @@
<PropertyGroup>
<!-- Versions used by several individual references below -->
<MicrosoftCodeAnalysisPackagesVersion>4.0.0-1.21267.34</MicrosoftCodeAnalysisPackagesVersion>
<MicrosoftVisualStudioShellPackagesVersion>17.0.0-previews-1-31318-291</MicrosoftVisualStudioShellPackagesVersion>
<MicrosoftVisualStudioEditorPackagesVersion>17.0.65-g6c25c21ba5</MicrosoftVisualStudioEditorPackagesVersion>
<MicrosoftVisualStudioShellPackagesVersion>17.0.0-previews-4-31709-430</MicrosoftVisualStudioShellPackagesVersion>
<MicrosoftVisualStudioEditorPackagesVersion>17.0.391-preview-g5e248c9073</MicrosoftVisualStudioEditorPackagesVersion>
<!-- Roslyn -->
<MicrosoftCodeAnalysisAnalyzersVersion>3.3.2</MicrosoftCodeAnalysisAnalyzersVersion>
<MicrosoftCodeAnalysisCommonVersion>$(MicrosoftCodeAnalysisPackagesVersion)</MicrosoftCodeAnalysisCommonVersion>
@ -33,7 +33,7 @@
<!-- VS SDK -->
<EnvDTE80Version>$(MicrosoftVisualStudioShellPackagesVersion)</EnvDTE80Version>
<EnvDTEVersion>$(MicrosoftVisualStudioShellPackagesVersion)</EnvDTEVersion>
<MicrosoftServiceHubFrameworkVersion>2.8.2018</MicrosoftServiceHubFrameworkVersion>
<MicrosoftServiceHubFrameworkVersion>3.0.2065</MicrosoftServiceHubFrameworkVersion>
<MicrosoftVisualStudioCompositionVersion>16.9.6-alpha</MicrosoftVisualStudioCompositionVersion>
<MicrosoftVisualStudioComponentModelHostVersion>$(MicrosoftVisualStudioEditorPackagesVersion)</MicrosoftVisualStudioComponentModelHostVersion>
<MicrosoftVisualStudioCoreUtilityVersion>$(MicrosoftVisualStudioEditorPackagesVersion)</MicrosoftVisualStudioCoreUtilityVersion>
@ -43,7 +43,7 @@
<MicrosoftVisualStudioImagingVersion>$(MicrosoftVisualStudioShellPackagesVersion)</MicrosoftVisualStudioImagingVersion>
<MicrosoftVisualStudioInteropVersion>$(MicrosoftVisualStudioShellPackagesVersion)</MicrosoftVisualStudioInteropVersion>
<MicrosoftVisualStudioLanguageStandardClassificationVersion>$(MicrosoftVisualStudioEditorPackagesVersion)</MicrosoftVisualStudioLanguageStandardClassificationVersion>
<MicrosoftVisualStudioSDKAnalyzersVersion>16.9.2-alpha</MicrosoftVisualStudioSDKAnalyzersVersion>
<MicrosoftVisualStudioSDKAnalyzersVersion>16.10.10</MicrosoftVisualStudioSDKAnalyzersVersion>
<MicrosoftVisualStudioShell150Version>$(MicrosoftVisualStudioShellPackagesVersion)</MicrosoftVisualStudioShell150Version>
<MicrosoftVisualStudioShellFrameworkVersion>$(MicrosoftVisualStudioShellPackagesVersion)</MicrosoftVisualStudioShellFrameworkVersion>
<MicrosoftVisualStudioShellInteropVersion>$(MicrosoftVisualStudioShellPackagesVersion)</MicrosoftVisualStudioShellInteropVersion>
@ -51,14 +51,14 @@
<MicrosoftVisualStudioTextLogicVersion>$(MicrosoftVisualStudioEditorPackagesVersion)</MicrosoftVisualStudioTextLogicVersion>
<MicrosoftVisualStudioTextManagerInterop80Version>$(MicrosoftVisualStudioShellPackagesVersion)</MicrosoftVisualStudioTextManagerInterop80Version>
<MicrosoftVisualStudioTextUIWpfVersion>$(MicrosoftVisualStudioEditorPackagesVersion)</MicrosoftVisualStudioTextUIWpfVersion>
<MicrosoftVisualStudioThreadingVersion>17.0.15-alpha</MicrosoftVisualStudioThreadingVersion>
<MicrosoftVisualStudioThreadingVersion>17.0.46-alpha</MicrosoftVisualStudioThreadingVersion>
<MicrosoftVisualStudioUtilitiesInternalVersion>16.3.23</MicrosoftVisualStudioUtilitiesInternalVersion>
<MicrosoftVisualStudioValidationVersion>17.0.11-alpha</MicrosoftVisualStudioValidationVersion>
<NuGetSolutionRestoreManagerInteropVersion>5.6.0</NuGetSolutionRestoreManagerInteropVersion>
<StreamJsonRpcVersion>2.7.67</StreamJsonRpcVersion>
<StreamJsonRpcVersion>2.7.70</StreamJsonRpcVersion>
<VSLangProjVersion>$(MicrosoftVisualStudioShellPackagesVersion)</VSLangProjVersion>
<MicrosoftVisualStudioTemplateWizardInterfaceVersion>17.0.0-preview-1-30928-1111</MicrosoftVisualStudioTemplateWizardInterfaceVersion>
<MicrosoftVSSDKBuildToolsVersion>17.0.1056-Dev17PIAs-g9dffd635</MicrosoftVSSDKBuildToolsVersion>
<MicrosoftVSSDKBuildToolsVersion>17.0.4207-preview4</MicrosoftVSSDKBuildToolsVersion>
<MicroBuildPluginsSwixBuildVersion>1.1.33</MicroBuildPluginsSwixBuildVersion>
<SystemThreadingTasksDataflowVersion>5.0.0</SystemThreadingTasksDataflowVersion>
<!-- Project System-->
@ -74,7 +74,7 @@
<MicrosoftCodeAnalysisTestingVersion>1.0.1-beta1.20374.2</MicrosoftCodeAnalysisTestingVersion>
<xunitassertVersion>$(xunitVersion)</xunitassertVersion>
<XunitCombinatorialVersion>1.2.7</XunitCombinatorialVersion>
<VsixTestingXunitVersion>0.1.49-beta</VsixTestingXunitVersion>
<MicrosoftVisualStudioExtensibilityTestingXunitVersion>0.1.73-beta</MicrosoftVisualStudioExtensibilityTestingXunitVersion>
<!-- Analyzers -->
<RoslynDiagnosticsAnalyzersVersion>2.9.8</RoslynDiagnosticsAnalyzersVersion>
<StyleCopAnalyzersVersion>1.2.0-beta.164</StyleCopAnalyzersVersion>

Просмотреть файл

@ -106,6 +106,8 @@ function Build {
$properties = $msbuildArgs
}
dotnet --list-sdks
MSBuild $toolsetBuildProj `
$bl `
$platformArg `

Просмотреть файл

@ -19,7 +19,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="15.1.192" PrivateAssets="all" />
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="16.8.3038" PrivateAssets="all" />
</ItemGroup>
<PropertyGroup>

Просмотреть файл

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>

Просмотреть файл

@ -19,7 +19,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="15.1.192" PrivateAssets="all" />
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="16.8.3038" PrivateAssets="all" />
</ItemGroup>
<PropertyGroup>

Просмотреть файл

@ -19,7 +19,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="15.1.192" PrivateAssets="all" />
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="16.8.3038" PrivateAssets="all" />
</ItemGroup>
<PropertyGroup>

Просмотреть файл

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>

Просмотреть файл

@ -19,7 +19,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="15.1.192" PrivateAssets="all" />
<PackageReference Include="Microsoft.VSSDK.BuildTools" Version="16.8.3038" PrivateAssets="all" />
</ItemGroup>
<PropertyGroup>

Просмотреть файл

@ -8,6 +8,7 @@
<GeneratePkgDefFile>true</GeneratePkgDefFile>
<EnableDefaultItems>false</EnableDefaultItems>
<IncludeAssemblyInVSIXContainer>false</IncludeAssemblyInVSIXContainer>
<DeployProjectOutput>false</DeployProjectOutput>
<!-- VS Insertion -->
<VisualStudioInsertionComponent>Microsoft.CodeAnalysis.SDK</VisualStudioInsertionComponent>
<SetupProductArch>Neutral</SetupProductArch>

Просмотреть файл

@ -2,18 +2,19 @@
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Id="ef918f69-be54-4b44-b381-81d6cecef939" Version="|%CurrentProject%;GetVsixVersion|" Language="en-US" Publisher="Microsoft" />
<DisplayName>.NET Compiler Platform SDK For Visual Studio 2017</DisplayName>
<DisplayName>.NET Compiler Platform SDK For Visual Studio 2022</DisplayName>
<Description xml:space="preserve">The .NET Compiler Platform ("Roslyn") provides open-source C# and Visual Basic compilers with rich code analysis APIs. You can build code analysis tools with the same APIs that Microsoft is using to implement Visual Studio! Also includes the Syntax Visualizer, a Visual Studio extension that allows you to inspect and explore the syntax trees you'll use as you build applications and VS extensions atop the .NET Compiler Platform ("Roslyn").</Description>
<PackageId>Roslyn.SDK</PackageId>
<License>EULA.rtf</License>
<Tags>roslyn,template,SDK</Tags>
</Metadata>
<Installation Experimental="true">
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[15.0.27009,)" />
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,18.0)">
<ProductArchitecture>amd64</ProductArchitecture>
</InstallationTarget>
</Installation>
<Dependencies>
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" />
<Dependency Id="Microsoft.VisualStudio.MPF.14.0" DisplayName="Visual Studio MPF 14.0" d:Source="Installed" Version="[14.0]" />
</Dependencies>
<Assets>
<Asset Type="Microsoft.VisualStudio.ProjectTemplate" Path="CSharpConsoleApplication"/>
@ -33,9 +34,6 @@
<Asset Type="Microsoft.VisualStudio.MefComponent" d:Source="Project" d:ProjectName="Roslyn.ComponentDebugger" Path="|Roslyn.ComponentDebugger|" />
</Assets>
<Prerequisites>
<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[15.0,16.0)" DisplayName="Visual Studio core editor" />
<Prerequisite Id="Microsoft.VisualStudio.Component.VSSDK" Version="[15.0,16.0)" DisplayName="Visual Studio SDK" />
<Prerequisite Id="Microsoft.Net.ComponentGroup.DevelopmentPrerequisites" Version="[15.0,16.0)" DisplayName=".NET Framework 4.6.1 development tools" />
<Prerequisite Id="Microsoft.Net.Core.Component.SDK" Version="[15.0,16.0)" DisplayName=".NET Core 2.0 development tools" />
<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[17.0,18.0)" DisplayName="Visual Studio core editor" />
</Prerequisites>
</PackageManifest>

Просмотреть файл

@ -55,12 +55,8 @@
<ItemGroup>
<None Include="xlf\*" />
<Resource Include="SyntaxTree.bmp">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="SyntaxTree.ico">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Resource>
<Resource Include="SyntaxTree.bmp" />
<Resource Include="SyntaxTree.ico" />
<EmbeddedResource Include="Resources.resx" GenerateSource="true" />
<EmbeddedResource Include="VSPackage.resx">
<MergeWithCTO>true</MergeWithCTO>

Просмотреть файл

@ -10,16 +10,15 @@
<Tags>roslyn,syntax,visualizer</Tags>
</Metadata>
<Installation InstalledByMsi="false">
<InstallationTarget Id="Microsoft.VisualStudio.Pro" Version="[14.0,)" />
<InstallationTarget Id="Microsoft.VisualStudio.Community" Version="[17.0,)" />
</Installation>
<Dependencies>
<Dependency Id="Microsoft.Framework.NDP" DisplayName="Microsoft .NET Framework" d:Source="Manual" Version="[4.5,)" />
<Dependency Id="Microsoft.VisualStudio.MPF.14.0" DisplayName="Visual Studio MPF 14.0" d:Source="Installed" Version="[14.0]" />
</Dependencies>
<Assets>
<Asset Type="Microsoft.VisualStudio.VsPackage" d:Source="Project" d:ProjectName="%CurrentProject%" Path="|%CurrentProject%;PkgdefProjectOutputGroup|" />
</Assets>
<Prerequisites>
<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[15.0,16.0)" DisplayName="Visual Studio core editor" />
<Prerequisite Id="Microsoft.VisualStudio.Component.CoreEditor" Version="[17.0,18.0)" DisplayName="Visual Studio core editor" />
</Prerequisites>
</PackageManifest>

Просмотреть файл

@ -16,9 +16,10 @@ using Task = System.Threading.Tasks.Task;
namespace Microsoft.CodeAnalysis.Testing
{
[VsTestSettings(UIThread = true, Version = "2019")]
public abstract class AbstractIdeIntegrationTest : IAsyncLifetime, IDisposable
{
protected const VisualStudioVersion TestVersion = VisualStudioVersion.VS2022;
/// <summary>
/// A long timeout used to avoid hangs in tests, where a test failure manifests as an operation never occurring.
/// </summary>

Просмотреть файл

@ -22,11 +22,11 @@ namespace Microsoft.CodeAnalysis.Testing
await base.DisposeAsync();
}
[VsFact]
[IdeFact(MinVersion = TestVersion, MaxVersion = TestVersion)]
public async Task CreateFromTemplateAsync()
{
await TestServices.SolutionExplorer.CreateSolutionAsync(nameof(CreateProjectTests));
await TestServices.SolutionExplorer.AddProjectAsync("TestProj", WellKnownProjectTemplates.ClassLibrary, languageName: LanguageNames.CSharp);
await TestServices.SolutionExplorer.AddProjectAsync("TestProj", WellKnownProjectTemplates.CSharpNetCoreClassLibrary, languageName: LanguageNames.CSharp);
await TestServices.SolutionExplorer.RestoreNuGetPackagesAsync(HangMitigatingCancellationToken);
await TestServices.Editor.SetTextAsync(@"using System");
@ -43,7 +43,7 @@ namespace Microsoft.CodeAnalysis.Testing
Assert.Equal(1, await TestServices.ErrorList.GetErrorCountAsync(__VSERRORCATEGORY.EC_ERROR));
}
[VsFact]
[IdeFact(MinVersion = TestVersion, MaxVersion = TestVersion)]
public async Task CreateAnalyzerFromCSharpTemplateAsync()
{
await TestServices.SolutionExplorer.CreateSolutionAsync(nameof(CreateProjectTests));
@ -61,13 +61,11 @@ namespace Microsoft.CodeAnalysis.Testing
// Currently have two analyzer warnings in the template.
var warnings = await TestServices.ErrorList.GetBuildErrorsAsync(__VSERRORCATEGORY.EC_WARNING);
var expected = @"(Compiler) TestProjAnalyzer.cs(29, 57): warning RS1025: Configure generated code analysis
(Compiler) TestProjAnalyzer.cs(29, 57): warning RS1026: Enable concurrent execution";
new XUnitVerifier().EqualOrDiff(expected, string.Join(Environment.NewLine, warnings));
Assert.Equal(2, await TestServices.ErrorList.GetErrorCountAsync(__VSERRORCATEGORY.EC_WARNING));
new XUnitVerifier().EqualOrDiff(string.Empty, string.Join(Environment.NewLine, warnings));
Assert.Equal(0, await TestServices.ErrorList.GetErrorCountAsync(__VSERRORCATEGORY.EC_WARNING));
}
[VsFact]
[IdeFact(MinVersion = TestVersion, MaxVersion = TestVersion)]
public async Task CreateRefactoringFromCSharpTemplateAsync()
{
await TestServices.SolutionExplorer.CreateSolutionAsync(nameof(CreateProjectTests));
@ -83,7 +81,7 @@ namespace Microsoft.CodeAnalysis.Testing
Assert.Equal(0, await TestServices.ErrorList.GetErrorCountAsync(__VSERRORCATEGORY.EC_WARNING));
}
[VsFact]
[IdeFact(MinVersion = TestVersion, MaxVersion = TestVersion)]
public async Task CreateStandaloneToolFromCSharpTemplateAsync()
{
await TestServices.SolutionExplorer.CreateSolutionAsync(nameof(CreateProjectTests));
@ -99,7 +97,7 @@ namespace Microsoft.CodeAnalysis.Testing
Assert.Equal(0, await TestServices.ErrorList.GetErrorCountAsync(__VSERRORCATEGORY.EC_WARNING));
}
[VsFact]
[IdeFact(MinVersion = TestVersion, MaxVersion = TestVersion)]
public async Task CreateAnalyzerFromVisualBasicTemplateAsync()
{
await TestServices.SolutionExplorer.CreateSolutionAsync(nameof(CreateProjectTests));
@ -117,13 +115,11 @@ namespace Microsoft.CodeAnalysis.Testing
// Currently have two analyzer warnings in the template.
var warnings = await TestServices.ErrorList.GetBuildErrorsAsync(__VSERRORCATEGORY.EC_WARNING);
var expected = @"(Compiler) TestProjAnalyzer.vb(32, 37): warning RS1025: Configure generated code analysis
(Compiler) TestProjAnalyzer.vb(32, 37): warning RS1026: Enable concurrent execution";
new XUnitVerifier().EqualOrDiff(expected, string.Join(Environment.NewLine, warnings));
Assert.Equal(2, await TestServices.ErrorList.GetErrorCountAsync(__VSERRORCATEGORY.EC_WARNING));
new XUnitVerifier().EqualOrDiff(string.Empty, string.Join(Environment.NewLine, warnings));
Assert.Equal(0, await TestServices.ErrorList.GetErrorCountAsync(__VSERRORCATEGORY.EC_WARNING));
}
[VsFact]
[IdeFact(MinVersion = TestVersion, MaxVersion = TestVersion)]
public async Task CreateRefactoringFromVisualBasicTemplateAsync()
{
await TestServices.SolutionExplorer.CreateSolutionAsync(nameof(CreateProjectTests));
@ -139,7 +135,7 @@ namespace Microsoft.CodeAnalysis.Testing
Assert.Equal(0, await TestServices.ErrorList.GetErrorCountAsync(__VSERRORCATEGORY.EC_WARNING));
}
[VsFact]
[IdeFact(MinVersion = TestVersion, MaxVersion = TestVersion)]
public async Task CreateStandaloneToolFromVisualBasicTemplateAsync()
{
await TestServices.SolutionExplorer.CreateSolutionAsync(nameof(CreateProjectTests));

Просмотреть файл

@ -135,12 +135,12 @@ namespace Microsoft.CodeAnalysis.Testing.InProcess
{
await JoinableTaskFactory.SwitchToMainThreadAsync();
var dte = await GetRequiredGlobalServiceAsync<SDTE, EnvDTE.DTE>();
var solution = (EnvDTE80.Solution2)dte.Solution;
var solutionFullName = solution.FullName;
var solutionFileFullPath = string.IsNullOrEmpty(solutionFullName)
? throw new InvalidOperationException()
: solutionFullName;
var solution = await GetRequiredGlobalServiceAsync<SVsSolution, IVsSolution>();
ErrorHandler.ThrowOnFailure(solution.GetSolutionInfo(out _, out var solutionFileFullPath, out _));
if (string.IsNullOrEmpty(solutionFileFullPath))
{
throw new InvalidOperationException();
}
return Path.GetDirectoryName(solutionFileFullPath);
}
@ -149,8 +149,8 @@ namespace Microsoft.CodeAnalysis.Testing.InProcess
{
await JoinableTaskFactory.SwitchToMainThreadAsync();
var dte = await GetRequiredGlobalServiceAsync<SDTE, EnvDTE.DTE>();
var localeID = dte.LocaleID;
var hostLocale = await GetRequiredGlobalServiceAsync<SUIHostLocale, IUIHostLocale>();
ErrorHandler.ThrowOnFailure(hostLocale.GetUILocale(out var localeID));
var builder = ImmutableDictionary.CreateBuilder<string, string>();
builder[WellKnownProjectTemplates.ClassLibrary] = $@"Windows\{localeID}\ClassLibrary.zip";
@ -166,8 +166,8 @@ namespace Microsoft.CodeAnalysis.Testing.InProcess
{
await JoinableTaskFactory.SwitchToMainThreadAsync();
var dte = await GetRequiredGlobalServiceAsync<SDTE, EnvDTE.DTE>();
var localeID = dte.LocaleID;
var hostLocale = await GetRequiredGlobalServiceAsync<SUIHostLocale, IUIHostLocale>();
ErrorHandler.ThrowOnFailure(hostLocale.GetUILocale(out var localeID));
var builder = ImmutableDictionary.CreateBuilder<string, string>();
builder[WellKnownProjectTemplates.ClassLibrary] = $@"Windows\{localeID}\ClassLibrary.zip";

Просмотреть файл

@ -6,6 +6,7 @@
<RootNamespace>Microsoft.CodeAnalysis.Testing</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\..\..\src\Microsoft.CodeAnalysis.Testing\Microsoft.CodeAnalysis.Analyzer.Testing\ExceptionUtilities.cs" Link="ExceptionUtilities.cs" />
<Compile Include="..\..\..\src\Microsoft.CodeAnalysis.Testing\Microsoft.CodeAnalysis.Analyzer.Testing\Extensions\IVerifierExtensions.cs" Link="IVerifierExtensions.cs" />
@ -19,35 +20,54 @@
<ItemGroup>
<PackageReference Include="DiffPlex" Version="$(DiffPlexVersion)" />
<PackageReference Include="EnvDTE80" Version="$(EnvDTE80Version)" />
<PackageReference Include="Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime" Version="$(MicrosoftVisualStudioImagingInterop140DesignTimeVersion)" />
<PackageReference Include="Microsoft.VisualStudio.SDK.Analyzers" Version="$(MicrosoftVisualStudioSDKAnalyzersVersion)" PrivateAssets="all" />
<PackageReference Include="Microsoft.VisualStudio.Shell.15.0" Version="$(MicrosoftVisualStudioShell150Version)" />
<PackageReference Include="Microsoft.VisualStudio.Shell.Framework" Version="$(MicrosoftVisualStudioShellFrameworkVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Shell.Interop" Version="$(MicrosoftVisualStudioShellInteropVersion)" />
<PackageReference Include="Microsoft.VisualStudio.TextManager.Interop.8.0" Version="$(MicrosoftVisualStudioTextManagerInterop80Version)" />
<PackageReference Include="Microsoft.VisualStudio.Threading" Version="$(MicrosoftVisualStudioThreadingVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Utilities.Internal" Version="$(MicrosoftVisualStudioUtilitiesInternalVersion)" />
<PackageReference Include="NuGet.SolutionRestoreManager.Interop" Version="$(NuGetSolutionRestoreManagerInteropVersion)" />
<PackageReference Include="StreamJsonRpc" Version="$(StreamJsonRpcVersion)" />
<PackageReference Include="VsixTesting.Xunit" Version="$(VsixTestingXunitVersion)" />
<!-- Explicit reference to avoid missing package warning -->
<PackageReference Include="Microsoft.VisualStudio.Extensibility.Testing.Xunit" Version="$(MicrosoftVisualStudioExtensibilityTestingXunitVersion)" />
<PackageReference Include="Microsoft.VisualStudio.Interop" Version="$(MicrosoftVisualStudioInteropVersion)" />
<PackageReference Include="VSLangProj" Version="$(VSLangProjVersion)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\src\VisualStudio.Roslyn.SDK\Roslyn.SDK\Roslyn.SDK.csproj" />
<ProjectReference Include="..\..\..\src\VisualStudio.Roslyn.SDK\Roslyn.SDK\Roslyn.SDK.csproj" CopyVsix="true" />
</ItemGroup>
<Target Name="PrepareVsixProjectReferences" BeforeTargets="ResolveProjectReferences" DependsOnTargets="PrepareProjectReferences">
<MSBuild Projects="@(_MSBuildProjectReferenceExistent)" Targets="CreateVsixContainer;VSIXContainerProjectOutputGroup" BuildInParallel="$(BuildInParallel)" Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); %(_MSBuildProjectReferenceExistent.SetPlatform); %(_MSBuildProjectReferenceExistent.SetTargetFramework); CreateVsixContainer=true" Condition="'%(_MSBuildProjectReferenceExistent.CopyVsix)' == 'true'" ContinueOnError="!$(BuildingProject)" RemoveProperties="%(_MSBuildProjectReferenceExistent.GlobalPropertiesToRemove)">
<ItemGroup>
<AssemblyAttribute Include="Xunit.Harness.RequireExtensionAttribute">
<_Parameter1>Roslyn.SDK.vsix</_Parameter1>
</AssemblyAttribute>
</ItemGroup>
<Target Name="SetEnvironmentVariablesForXUnit" BeforeTargets="RunTests">
<PropertyGroup>
<_OriginalNuGetPackageRoot>$(NuGetPackageRoot)</_OriginalNuGetPackageRoot>
<!-- Use the first variable in the definition of $(_XUnitConsoleExePath) to change environment variables as part of launching tests -->
<NuGetPackageRoot>cmd" /c &amp; (set DOTNET_MULTILEVEL_LOOKUP=) &amp; (set DOTNET_INSTALL_DIR=) &amp; (set DOTNET_ROOT=) &amp; "$(NuGetPackageRoot)</NuGetPackageRoot>
</PropertyGroup>
</Target>
<Target Name="RestoreBuildState" AfterTargets="RunTests">
<PropertyGroup>
<NuGetPackageRoot>$(_OriginalNuGetPackageRoot)</NuGetPackageRoot>
</PropertyGroup>
</Target>
<Target Name="PrepareVsixProjectReferences"
BeforeTargets="ResolveProjectReferences"
DependsOnTargets="PrepareProjectReferences">
<MSBuild
Projects="@(_MSBuildProjectReferenceExistent)"
Targets="VSIXContainerProjectOutputGroup"
BuildInParallel="$(BuildInParallel)"
Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); %(_MSBuildProjectReferenceExistent.SetPlatform); %(_MSBuildProjectReferenceExistent.SetTargetFramework); CreateVsixContainer=true"
Condition="'%(_MSBuildProjectReferenceExistent.CopyVsix)' == 'true'"
ContinueOnError="!$(BuildingProject)"
RemoveProperties="%(_MSBuildProjectReferenceExistent.GlobalPropertiesToRemove)">
<Output TaskParameter="TargetOutputs" ItemName="_ProjectReferenceVsixOutputs" />
</MSBuild>
<ItemGroup>
<None Include="@(_ProjectReferenceVsixOutputs)" Condition="Exists('%(Identity)')" CopyToOutputDirectory="PreserveNewest" />
<ReferenceCopyLocalPaths Include="@(_ProjectReferenceVsixOutputs)" />
</ItemGroup>
</Target>