Skip to content

Commit a23b559

Browse files
JinhuafeiHongGit
authored andcommitted
Dev remove roslyn nupkg ref (#30)
* remove roslyn nupkg ref * Set default value for RoslynToolPath only when it's not set
1 parent 9408cd2 commit a23b559

12 files changed

Lines changed: 135 additions & 47 deletions

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ PublishProfiles/
1212
.vs
1313
.build/
1414
.testPublish/
15-
msbuild.*
15+
msbuild.*
16+
src/**/tools/Roslyn*/

src/Packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.nuproj

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,24 @@
2929
<NuGetContent Include="build\*">
3030
<Destination>build\net45</Destination>
3131
</NuGetContent>
32+
<NuGetContent Include="build\*">
33+
<Destination>build\net46</Destination>
34+
</NuGetContent>
35+
<NuGetContent Include="build\net45\*">
36+
<Destination>build\net45</Destination>
37+
</NuGetContent>
38+
<NuGetContent Include="build\net46\*">
39+
<Destination>build\net46</Destination>
40+
</NuGetContent>
3241
<NuGetContent Include="tools\*.ps1">
3342
<Destination>tools\net45</Destination>
3443
</NuGetContent>
44+
<NuGetContent Include="tools\$(LocalRoslynFolderName)\*">
45+
<Destination>tools\$(LocalRoslynFolderName)</Destination>
46+
</NuGetContent>
47+
<NuGetContent Include="tools\$(LocalLatestRoslynFolderName)\*">
48+
<Destination>tools\$(LocalLatestRoslynFolderName)</Destination>
49+
</NuGetContent>
3550
</ItemGroup>
3651
<Import Project="$(RepositoryRoot)Tools\NuGetProj.targets"/>
3752
</Project>

src/Packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.nuspec

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,5 @@
1414
<licenseUrl>http://www.microsoft.com/web/webpi/eula/net_library_eula_ENU.htm</licenseUrl>
1515
<requireLicenseAcceptance>true</requireLicenseAcceptance>
1616
<tags>Roslyn CodeDOM Compiler CSharp VB.Net ASP.NET</tags>
17-
<dependencies>
18-
<group targetFramework=".NETFramework4.5">
19-
<dependency id="Microsoft.Net.Compilers" version="$MSNetCompilersNuGetPackageVersion$" />
20-
</group>
21-
<group targetFramework=".NETFramework4.6">
22-
<dependency id="Microsoft.Net.Compilers" version="$MSNetCompilersNuGetPackageLatestVersion$" />
23-
</group>
24-
</dependencies>
2517
</metadata>
2618
</package>

src/Packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/build/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<Import Project="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.Extensions.props"/>
3+
24
<ItemGroup>
3-
<RoslyCompilerFiles Include="$(CscToolPath)\*">
5+
<RoslyCompilerFiles Include="$(RoslynToolPath)\*">
46
<Link>roslyn\%(RecursiveDir)%(Filename)%(Extension)</Link>
57
</RoslyCompilerFiles>
68
</ItemGroup>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<PropertyGroup>
3+
<RoslynToolPath Condition=" '$(RoslynToolPath)' == '' ">$(MSBuildThisFileDirectory)..\..\tools\roslyn45</RoslynToolPath>
4+
</PropertyGroup>
5+
</Project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<PropertyGroup>
3+
<RoslynToolPath Condition=" '$(RoslynToolPath)' == '' ">$(MSBuildThisFileDirectory)..\..\tools\roslynlatest</RoslynToolPath>
4+
</PropertyGroup>
5+
</Project>

src/Packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/content/net45/web.config.install.xdt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<compiler
2727
language="c#;cs;csharp"
2828
extension=".cs"
29-
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
29+
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.9.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
3030
warningLevel="4"
3131
compilerOptions="/langversion:6 /nowarn:1659;1699;1701"
3232
xdt:Transform="Insert" />
@@ -49,7 +49,7 @@
4949
<compiler
5050
language="vb;vbs;visualbasic;vbscript"
5151
extension=".vb"
52-
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
52+
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.9.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
5353
warningLevel="4"
5454
compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"
5555
xdt:Transform="Insert" />

src/Packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/content/net46/web.config.install.xdt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<compiler
2727
language="c#;cs;csharp"
2828
extension=".cs"
29-
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
29+
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.9.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
3030
warningLevel="4"
3131
compilerOptions="/langversion:default /nowarn:1659;1699;1701"
3232
xdt:Transform="Insert" />
@@ -49,7 +49,7 @@
4949
<compiler
5050
language="vb;vbs;visualbasic;vbscript"
5151
extension=".vb"
52-
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.8.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
52+
type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.9.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
5353
warningLevel="4"
5454
compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"
5555
xdt:Transform="Insert" />

src/Packages/Microsoft.CodeDom.Providers.DotNetCompilerPlatform/tools/install.ps1

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
param($installPath, $toolsPath, $package, $project)
55

6-
$compilerPackageName = 'Microsoft.Net.Compilers'
76
$roslynSubFolder = 'roslyn'
87

98
if ($project -eq $null) {
@@ -12,6 +11,8 @@ if ($project -eq $null) {
1211

1312
$libDirectory = Join-Path $installPath 'lib\net45'
1413
$projectRoot = $project.Properties.Item('FullPath').Value
14+
$projectTargetFramework = $project.Properties.Item('TargetFrameworkMoniker').Value
15+
$shouldUseRoslyn45 = $projectTargetFramework -match '4.5'
1516
$binDirectory = Join-Path $projectRoot 'bin'
1617

1718
# We need to copy the provider assembly into the bin\ folder, otherwise
@@ -26,25 +27,16 @@ Copy-Item $libDirectory\* $binDirectory -force | Out-Null
2627
if ($project.Type -eq 'Web Site') {
2728
$packageDirectory = Split-Path $installPath
2829

29-
# Get the installed Microsoft.Net.Compilers package.
30-
$compilerPackage = Get-Package -ProjectName $project.Name | Where-Object {$_.Id -eq $compilerPackageName}
31-
if ($compilerPackage -eq $null)
30+
if($package.Versions -eq $null)
3231
{
33-
Write-Host "Package $compilerPackageName is not installed correctly."
34-
Write-Host 'The install.ps1 did not complete.'
35-
break
36-
}
37-
38-
if($compilerPackage.Versions -eq $null)
39-
{
40-
$compilerVersion = $compilerPackage.Version
32+
$compilerVersion = $package.Version
4133
}
4234
else
4335
{
44-
$compilerVersion = @($compilerPackage.Versions)[0]
36+
$compilerVersion = @($package.Versions)[0]
4537
}
4638

47-
$compilerPackageFolderName = $compilerPackage.Id + "." + $compilerVersion
39+
$compilerPackageFolderName = $package.Id + "." + $compilerVersion
4840
$compilerPackageDirectory = Join-Path $packageDirectory $compilerPackageFolderName
4941
if ((Get-Item $compilerPackageDirectory) -isnot [System.IO.DirectoryInfo])
5042
{
@@ -53,7 +45,14 @@ if ($project.Type -eq 'Web Site') {
5345
break
5446
}
5547

56-
$compilerPackageToolsDirectory = Join-Path $compilerPackageDirectory 'tools'
48+
if($shouldUseRoslyn45)
49+
{
50+
$compilerPackageToolsDirectory = Join-Path $compilerPackageDirectory 'tools\roslyn45'
51+
}
52+
else
53+
{
54+
$compilerPackageToolsDirectory = Join-Path $compilerPackageDirectory 'tools\roslynlatest'
55+
}
5756
$roslynSubDirectory = Join-Path $binDirectory $roslynSubFolder
5857
New-Item $roslynSubDirectory -type directory -force | Out-Null
5958
Copy-Item $compilerPackageToolsDirectory\* $roslynSubDirectory -force | Out-Null
Lines changed: 78 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,82 @@
11
<Project DefaultTargets="UnitTest" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2-
3-
<!-- Update NuGet Package version for nightly build-->
4-
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.nuproj'">
5-
<NuGetPackageVersion Condition="'$(UpdateNightlyPackages)' == 'true'">$(NuGetPackageVersion)-b$(VersionBuild)</NuGetPackageVersion>
2+
<PropertyGroup>
3+
<NupkgToolPath>$(RepositoryRoot)src\Packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform\tools\</NupkgToolPath>
4+
<LocalRoslynFolderName>Roslyn45</LocalRoslynFolderName>
5+
<LocalLatestRoslynFolderName>RoslynLatest</LocalLatestRoslynFolderName>
66
</PropertyGroup>
7-
8-
<ItemGroup>
9-
<NuGetInstallScripts Include="$(RepositoryRootEx)src\Packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform\tools\*.ps1"/>
10-
</ItemGroup>
11-
12-
<Target Name="CopyInstallScripts">
13-
<Copy SourceFiles="@(NuGetInstallScripts)"
14-
DestinationFolder="$(AssemblyPath)"
15-
/>
16-
</Target>
177

8+
<UsingTask TaskName="DownloadRoslynBinaries" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
9+
<ParameterGroup>
10+
<NupkgToolPath ParameterType="System.String" Required="true" />
11+
<LocalRoslynFolderName ParameterType="System.String" Required="true" />
12+
<LocalLatestRoslynFolderName ParameterType="System.String" Required="true" />
13+
<ReferenceRoslynNupkgVersion ParameterType="System.String" Required="true" />
14+
<ReferenceLatestRoslynNupkgVersion ParameterType="System.String" Required="true" />
15+
</ParameterGroup>
16+
<Task>
17+
<Reference Include="System" />
18+
<Reference Include="System.IO.Compression.FileSystem" />
19+
<Using Namespace="System.IO" />
20+
<Using Namespace="System.IO.Compression" />
21+
<Using Namespace="System.Net" />
22+
<Code Type="Fragment" Language="cs">
23+
<![CDATA[
24+
try
25+
{
26+
using (var wc = new WebClient())
27+
{
28+
var roslynNugetBaseUri = "https://api.nuget.org/packages/microsoft.net.compilers.{0}.nupkg";
29+
var roslynPackageName = "microsoft.net.compilers.{0}.nupkg";
30+
31+
var targetFilePath = Path.Combine(Path.GetTempPath(), string.Format(roslynPackageName, ReferenceRoslynNupkgVersion));
32+
var targetExtractPath = Path.Combine(Path.GetTempPath(), LocalRoslynFolderName);
33+
var targetPath = Path.Combine(NupkgToolPath, LocalRoslynFolderName);
34+
if (Directory.Exists(targetExtractPath))
35+
{
36+
Directory.Delete(targetExtractPath, true);
37+
}
38+
if (Directory.Exists(targetPath))
39+
{
40+
Directory.Delete(targetPath, true);
41+
}
42+
43+
wc.DownloadFile(string.Format(roslynNugetBaseUri, ReferenceRoslynNupkgVersion), targetFilePath);
44+
ZipFile.ExtractToDirectory(targetFilePath, targetExtractPath);
45+
Directory.CreateDirectory(targetPath);
46+
foreach(var file in Directory.GetFiles(Path.Combine(targetExtractPath, "tools"))){
47+
var fi = new FileInfo(file);
48+
File.Copy(file, Path.Combine(targetPath, fi.Name));
49+
}
50+
51+
targetFilePath = Path.Combine(Path.GetTempPath(), string.Format(roslynPackageName, ReferenceLatestRoslynNupkgVersion));
52+
targetExtractPath = Path.Combine(Path.GetTempPath(), LocalLatestRoslynFolderName);
53+
targetPath = Path.Combine(NupkgToolPath, LocalLatestRoslynFolderName);
54+
if (Directory.Exists(targetExtractPath))
55+
{
56+
Directory.Delete(targetExtractPath, true);
57+
}
58+
if (Directory.Exists(targetPath))
59+
{
60+
Directory.Delete(targetPath, true);
61+
}
62+
63+
wc.DownloadFile(string.Format(roslynNugetBaseUri, ReferenceLatestRoslynNupkgVersion), targetFilePath);
64+
ZipFile.ExtractToDirectory(targetFilePath, targetExtractPath);
65+
Directory.CreateDirectory(targetPath);
66+
foreach (var file in Directory.GetFiles(Path.Combine(targetExtractPath, "tools")))
67+
{
68+
var fi = new FileInfo(file);
69+
File.Copy(file, Path.Combine(targetPath, fi.Name));
70+
}
71+
}
72+
}
73+
catch (Exception ex)
74+
{
75+
Log.LogErrorFromException(ex);
76+
}
77+
return true;
78+
]]>
79+
</Code>
80+
</Task>
81+
</UsingTask>
1882
</Project>

0 commit comments

Comments
 (0)