提交 b535c3c1 编写于 作者: J Jared Parsons 提交者: GitHub

Merge pull request #15236 from jaredpar/fix-vsix

Move to the Dev15 SDK for building VSIX
......@@ -38,12 +38,6 @@ call "%NugetExe%" restore "%RoslynRoot%build\ToolsetPackages\project.json" %NuGe
echo Restoring packages: Toolsets (Dev14 VS SDK build tools)
call "%NugetExe%" restore "%RoslynRoot%build\ToolsetPackages\dev14.project.json" %NuGetAdditionalCommandLineArgs% || goto :RestoreFailed
echo Restoring packages: Toolsets (Dev15 VS SDK build tools)
call "%NugetExe%" restore "%RoslynRoot%build\ToolsetPackages\dev15.project.json" %NuGetAdditionalCommandLineArgs% || goto :RestoreFailed
echo Restoring packages: Toolsets (Dev15 VS SDK 'Willow' build tools)
call "%NugetExe%" restore "%RoslynRoot%build\ToolsetPackages\dev15Willow.project.json" %NuGetAdditionalCommandLineArgs% || goto :RestoreFailed
echo Restoring packages: Toolsets (Dev15 VS SDK RC build tools)
call "%NugetExe%" restore "%RoslynRoot%build\ToolsetPackages\dev15rc.project.json" %NuGetAdditionalCommandLineArgs% || goto :RestoreFailed
......
......@@ -290,30 +290,6 @@
</NuGetPackageToIncludeInVsix>
</ItemDefinitionGroup>
<!-- Currently, the Willow installer can't install vsixes that have a <Prerequisites> element
but the Dev15 RC SDK packages can NOT install vsixes without them as part of the build.
To work around this conflict, we include them in our manifest files, but if we're building
with something older than Dev15 RC (as we do for official builds that we insert into setup)
we'll run a transform to strip out the <Prerequisites> element. -->
<Target Name="RewriteVsixManifestOnOfficialBuild"
BeforeTargets="FindSourceVsixManifest"
Condition="'$(IsDev15RC)' != 'true'">
<MakeDir Directories="$(IntermediateOutputPath)" />
<XslTransformation XslInputPath="$(MSBuildThisFileDirectory)TransformVsixManifest.xslt"
XmlInputPaths="source.extension.vsixmanifest"
OutputPaths="$(IntermediateOutputPath)\source.extension.vsixmanifest" />
<ItemGroup>
<!-- Note that `FindSourceVsixManifest` finds the first item in @None that matches the name.
Our template projects include other manifests as content that are in @None, so make
sure we put our tranformed item back at the beginning of the list. -->
<None Remove="source.extension.vsixmanifest" />
<_TempNoneForReordering Include="@(None)" />
<None Remove="@(None)" />
<None Include="$(IntermediateOutputPath)\source.extension.vsixmanifest;@(_TempNoneForReordering)" />
</ItemGroup>
</Target>
<!-- This is a copy of the Microsoft.VisualStudio.SDK.EmbedInteropTypes NuGet package, but only the list of
assemblies that we need. The package includes things like EnvDTE which are reasonable for consumers, but
strange since we actually _implement_ DTE and use it as an exchange type with generics in a few places. -->
......
......@@ -54,15 +54,15 @@
<DebugType>pdbonly</DebugType>
<UseSharedCompilation>true</UseSharedCompilation>
<!-- This is a really hacky way to detect whether we are on a legacy or a willow based VS install.
Basically, we check for a registry key that will only exist in legacy VS installs, and assume
we are a willow based installation if our VSVersion is 15.0 and the registry key doesn't exist. -->
<IsVSBeforeDev15Preview4 Condition="'$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\15.0@InstallDir)' != ''">true</IsVSBeforeDev15Preview4>
<IsVSBeforeDev15Preview4 Condition="'$(registry:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\15.0@InstallDir)' != ''">true</IsVSBeforeDev15Preview4>
<IsVSBeforeDev15Preview4 Condition="'$(IsVSBeforeDev15Preview4)' == 'true' AND Exists('$(MSBuildBinPath)\..\..\..\Common7\IDE\devenv.isolation.ini')">false</IsVSBeforeDev15Preview4>
<IsVSBeforeDev15Preview4 Condition="'$(IsVSBeforeDev15Preview4)' == 'true' AND Exists('$(MSBuildBinPath)\..\..\..\..\Common7\IDE\devenv.isolation.ini')">false</IsVSBeforeDev15Preview4>
<!-- Presently our code can build on machines with Dev14 or Dev15 but only successfully deploy
in the Dev15 environment. -->
<IsDev15RC Condition="Exists('$(MSBuildBinPath)\..\..\..\Common7\IDE\Microsoft.VisualStudio.ExtensionEngine.dll')">true</IsDev15RC>
<IsDev15RC Condition="Exists('$(MSBuildBinPath)\..\..\..\..\Common7\IDE\Microsoft.VisualStudio.ExtensionEngine.dll')">true</IsDev15RC>
<DeployExtension Condition="'$(IsDev15RC)' != 'true' or '$(VisualStudioVersion)' != '15.0'">false</DeployExtension>
<VisualStudioBuildToolsVersion>15.0.25907-RC2</VisualStudioBuildToolsVersion>
<!-- For the moment our Dev14 VSI suites must continue to use the Dev14 SDK. -->
<VisualStudioBuildToolsVersion Condition="'$(IsDev14VsiBuild)' == 'true'">14.3.25420</VisualStudioBuildToolsVersion>
</PropertyGroup>
<!-- Unix specific settings -->
......@@ -180,30 +180,6 @@
</When>
</Choose>
<!-- Visual Studio specific properties -->
<Choose>
<When Condition="'$(VisualStudioVersion)' == '15.0' AND '$(IsVSBeforeDev15Preview4)' == 'true'">
<PropertyGroup>
<VisualStudioBuildToolsVersion>15.0.25201-dev15preview2</VisualStudioBuildToolsVersion>
</PropertyGroup>
</When>
<When Condition="'$(VisualStudioVersion)' == '15.0' AND '$(IsDev15RC)' == 'true'">
<PropertyGroup>
<VisualStudioBuildToolsVersion>15.0.25825-RC</VisualStudioBuildToolsVersion>
</PropertyGroup>
</When>
<When Condition="'$(VisualStudioVersion)' == '15.0'">
<PropertyGroup>
<VisualStudioBuildToolsVersion>15.0.25604-Preview4</VisualStudioBuildToolsVersion>
</PropertyGroup>
</When>
<Otherwise>
<PropertyGroup>
<VisualStudioBuildToolsVersion>14.3.25420</VisualStudioBuildToolsVersion>
</PropertyGroup>
</Otherwise>
</Choose>
<ItemGroup Condition="'$(ProjectLanguage)' == 'CSharp' AND '$(TargetNetFX20)' == 'true'">
<_ExplicitReference Include="$(FrameworkPathOverride)\mscorlib.dll" />
</ItemGroup>
......
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:vsix="http://schemas.microsoft.com/developer/vsx-schema/2011">
<xsl:output omit-xml-declaration="yes"/>
<!-- Match every node and copy it to the output -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<!-- Now override that to do nothing if it matches our element, thus
omitting it from the output -->
<xsl:template match="vsix:Prerequisites"/>
</xsl:stylesheet>
{
"dependencies": {
"Microsoft.VSSDK.BuildTools": "15.0.25201-dev15preview2"
},
"frameworks": {
"net46": {}
}
}
{
"dependencies": {
"Microsoft.VSSDK.BuildTools": "15.0.25604-Preview4"
},
"frameworks": {
"net46": {}
}
}
{
"dependencies": {
"Microsoft.VSSDK.BuildTools": "15.0.25825-RC"
"Microsoft.VSSDK.BuildTools": "15.0.25907-RC2"
},
"frameworks": {
"net46": {}
......
{
"fixedPackages": {
"Microsoft.VisualStudio.Language.Intellisense": "14.3.25407",
"Microsoft.VSSDK.BuildTools": [ "14.3.25420", "15.0.25201-dev15preview2","15.0.25604-Preview4", "15.0.25825-RC" ],
"Microsoft.VSSDK.BuildTools": [ "14.3.25420", "15.0.25907-RC2" ],
"System.Reflection.Metadata": "1.0.21",
"System.Collections.Immutable": "1.1.36",
"Microsoft.VisualStudio.Editor": [ "14.3.25407", "15.0.25604-Preview4" ],
"Microsoft.VisualStudio.Imaging": [ "14.3.25407", "15.0.25604-Preview4" ],
"Microsoft.VisualStudio.ImageCatalog": [ "14.3.25407", "15.0.25604-Preview4" ],
"Microsoft.VisualStudio.Text.UI.Wpf": [ "14.3.25407", "15.0.25604-Preview4" ],
"Microsoft.VisualStudio.Text.Logic": [ "14.3.25407", "15.0.25604-Preview4" ],
"Microsoft.VisualStudio.Text.Data": [ "14.3.25407", "15.0.25604-Preview4" ],
"Microsoft.VisualStudio.Editor": [ "14.3.25407", "15.0.25726-Preview5" ],
"Microsoft.VisualStudio.Imaging": [ "14.3.25407", "15.0.25726-Preview5" ],
"Microsoft.VisualStudio.ImageCatalog": [ "14.3.25407", "15.0.25726-Preview5" ],
"Microsoft.VisualStudio.Text.UI.Wpf": [ "14.3.25407", "15.0.25726-Preview5" ],
"Microsoft.VisualStudio.Text.Logic": [ "14.3.25407", "15.0.25726-Preview5" ],
"Microsoft.VisualStudio.Text.Data": [ "14.3.25407", "15.0.25726-Preview5" ],
"Microsoft.VisualStudio.Text.UI": "14.3.25407",
"Microsoft.Build": {
"generateName": "Microsoft.Build.14",
......
{
"dependencies": {
"Dev15BinariesForRoslyn": "5.0.0.0",
"Microsoft.VisualStudio.Imaging": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Utilities": "15.0.25726-Preview5",
"Microsoft.VisualStudio.ImageCatalog": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.UI": "15.0.25726-Preview5",
"Microsoft.VisualStudio.CoreUtility": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Language.Intellisense": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.Data": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.Logic": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.UI.Wpf": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Editor": "15.0.25726-Preview5",
"Roslyn.Microsoft.VisualStudio.Language.NavigateTo.Interfaces": "15.0.25726-Preview5",
"System.Collections.Immutable": "1.2.0",
"Microsoft.VisualStudio.Imaging.Interop.14.0.DesignTime": {
"version": "14.3.25407",
......
......@@ -932,6 +932,11 @@ Public Class BuildDevDivInsertionFiles
Continue For
End If
' Files generated by the VSIX v3 installer that don't need to be inserted.
If partFileName = "catalog.json" OrElse partFileName = "manifest.json" Then
Continue For
End If
If dependencies.ContainsKey(partFileName) Then
Continue For
End If
......
......@@ -94,11 +94,6 @@ private void ProcessCopyingFileFrom(string text, string prefix, string infix)
var source = text.Substring(prefixLength, split - prefixLength);
var destination = text.Substring(split + toLength, text.Length - 2 - split - toLength);
if (IgnoreDestinationTemporarily(destination))
{
return;
}
List<string> list;
if (!_copyMap.TryGetValue(destination, out list))
{
......@@ -108,41 +103,5 @@ private void ProcessCopyingFileFrom(string text, string prefix, string infix)
list.Add(source);
}
/// <summary>
/// Presently our build has a series of bad double writes. Until we have completely fixed these
/// scenarios we will suppress the error.
///
/// https://github.com/dotnet/roslyn/issues/15163
/// </summary>
private static bool IgnoreDestinationTemporarily(string destinationPath)
{
var fileName = Path.GetFileName(destinationPath);
var parentDirName = Path.GetFileName(Path.GetDirectoryName(destinationPath));
if (FilePathComparer.Equals(parentDirName, "VisualStudioTest.Next"))
{
return
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.CoreUtility.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Language.Intellisense.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Text.Data.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Text.Logic.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Text.UI.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Text.UI.Wpf.dll");
}
if (FilePathComparer.Equals(parentDirName, "VisualStudioSetup.Next"))
{
return
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.CoreUtility.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Shell.15.0.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Shell.Framework.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Text.Data.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Text.Logic.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Text.UI.dll") ||
FilePathComparer.Equals(fileName, "Microsoft.VisualStudio.Text.UI.Wpf.dll");
}
return false;
}
}
}
{
"dependencies": {
"Dev15BinariesForRoslyn": "5.0.0.0",
"Microsoft.VisualStudio.ImageCatalog": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Imaging": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Utilities": "15.0.25726-Preview5",
"Microsoft.VisualStudio.ImageCatalog": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.UI": "15.0.25726-Preview5",
"Microsoft.VisualStudio.CoreUtility": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Language.Intellisense": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.Data": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.Logic": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.UI.Wpf": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Editor": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Shell.Framework": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Shell.15.0": "15.0.25726-Preview5",
"Roslyn.Microsoft.VisualStudio.Language.NavigateTo.Interfaces": "15.0.25726-Preview5",
"NuGet.VisualStudio": {
"version": "3.3.0",
"suppressParent": "all"
......
......@@ -3,17 +3,19 @@
"Newtonsoft.Json": "8.0.3",
"Moq": "4.2.1402.2112",
"Microsoft.VisualStudio.Composition": "14.2.19-pre",
"Dev15BinariesForRoslyn": "5.0.0.0",
"Microsoft.VisualStudio.Imaging": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Utilities": "15.0.25604-Preview4",
"Microsoft.VisualStudio.ImageCatalog": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Text.UI": "15.0.25604-Preview4",
"Microsoft.VisualStudio.CoreUtility": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Language.Intellisense": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Text.Data": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Text.Logic": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Text.UI.Wpf": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Editor": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Imaging": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Utilities": "15.0.25726-Preview5",
"Microsoft.VisualStudio.ImageCatalog": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.UI": "15.0.25726-Preview5",
"Microsoft.VisualStudio.CoreUtility": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Language.Intellisense": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.Data": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.Logic": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Text.UI.Wpf": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Editor": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Shell.Framework": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Shell.15.0": "15.0.25726-Preview5",
"Roslyn.Microsoft.VisualStudio.Language.NavigateTo.Interfaces": "15.0.25726-Preview5",
},
"frameworks": {
"net46": { }
......
......@@ -14,7 +14,12 @@
<IncludeDebugSymbolsInVSIXContainer>false</IncludeDebugSymbolsInVSIXContainer>
<IncludeDebugSymbolsInLocalVSIXDeployment>false</IncludeDebugSymbolsInLocalVSIXDeployment>
<MinimumVisualStudioVersion>$(VisualStudioVersion)</MinimumVisualStudioVersion>
<ImportVSSDKTargets>true</ImportVSSDKTargets>
<!-- This VSIX must be compiled with the Dev15 SDK due to the specific
set of references it uses. Yet when doing so it can't link in all
of the Dev14 VSIX that we are creating. Hence when building specifically
for Dev14 do not build this as a VSIX. -->
<ImportVSSDKTargets Condition="'$(IsDev14VsiBuild)' != 'true'">true</ImportVSSDKTargets>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
<CopyNuGetImplementations>true</CopyNuGetImplementations>
<DeployExtension Condition="'$(VisualStudioVersion)' == '14.0'">false</DeployExtension>
......@@ -107,4 +112,4 @@
<Compile Include="AssemblyRedirects.cs" />
</ItemGroup>
<Import Project="..\..\..\build\Targets\Imports.targets" />
</Project>
\ No newline at end of file
</Project>
{
"dependencies": {
"Microsoft.VisualStudio.Shell.Framework": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Shell.15.0": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Shell.Immutable.10.0": "15.0.25413-Preview5",
"Microsoft.VisualStudio.Shell.Immutable.11.0": "15.0.25413-Preview5",
"RoslynDependencies.Microsoft.VisualStudio.CallHierarchy.Package.Definitions": {
"version": "14.3.25407",
"suppressParent": "all"
......@@ -11,4 +15,4 @@
"runtimes": {
"win7": { }
}
}
\ No newline at end of file
}
{
"dependencies": {
"Microsoft.VisualStudio.Editor": "15.0.25604-Preview4",
"Microsoft.VisualStudio.ImageCatalog": "15.0.25604-Preview4",
"Microsoft.VisualStudio.Shell.15.0": "15.0.25604-Preview4"
"Microsoft.VisualStudio.Editor": "15.0.25726-Preview5",
"Microsoft.VisualStudio.ImageCatalog": "15.0.25726-Preview5",
"Microsoft.VisualStudio.Shell.15.0": "15.0.25726-Preview5"
},
"frameworks": {
"net46": { }
}
}
\ No newline at end of file
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册