Skip to content

Commit dfd75b3

Browse files
JinhuafeiHongGit
authored andcommitted
fix rebuild/clean warning issue (#43)
1 parent d65e501 commit dfd75b3

2 files changed

Lines changed: 42 additions & 15 deletions

File tree

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

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,41 @@
22
<Import Project="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.Extensions.props"/>
33

44
<ItemGroup>
5-
<RoslyCompilerFiles Include="$(RoslynToolPath)\*">
5+
<RoslynCompilerFiles Include="$(RoslynToolPath)\*">
66
<Link>roslyn\%(RecursiveDir)%(Filename)%(Extension)</Link>
7-
</RoslyCompilerFiles>
7+
</RoslynCompilerFiles>
88
</ItemGroup>
99
<Target Name="IncludeRoslynCompilerFilesToFilesForPackagingFromProject" BeforeTargets="PipelineCollectFilesPhase" >
1010
<ItemGroup>
11-
<FilesForPackagingFromProject Include="@(RoslyCompilerFiles)">
11+
<FilesForPackagingFromProject Include="@(RoslynCompilerFiles)">
1212
<DestinationRelativePath>bin\roslyn\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
1313
<FromTarget>IncludeRoslynCompilerFilesToFilesForPackagingFromProject</FromTarget>
1414
<Category>Run</Category>
1515
</FilesForPackagingFromProject>
1616
</ItemGroup>
1717
</Target>
18-
<Target Name="CopyRoslynCompilerFilesToOutputDirectory" AfterTargets="CopyFilesToOutputDirectory">
19-
<PropertyGroup>
20-
<RoslynToolsDestinationFolder>$(WebProjectOutputDir)\bin\roslyn</RoslynToolsDestinationFolder>
21-
<RoslynToolsDestinationFolder Condition=" '$(WebProjectOutputDir)' == '' ">$(OutputPath)\roslyn</RoslynToolsDestinationFolder>
18+
<Target Name="LocateRoslynToolsDestinationFolder" Condition=" '$(RoslynToolsDestinationFolder)' == '' ">
19+
<PropertyGroup>
20+
<RoslynToolsDestinationFolder>$(WebProjectOutputDir)\bin\roslyn</RoslynToolsDestinationFolder>
21+
<RoslynToolsDestinationFolder Condition=" '$(WebProjectOutputDir)' == '' ">$(OutputPath)\roslyn</RoslynToolsDestinationFolder>
2222
</PropertyGroup>
23-
<Copy SourceFiles="@(RoslyCompilerFiles)" DestinationFolder="$(RoslynToolsDestinationFolder)" ContinueOnError="true" SkipUnchangedFiles="true" Retries="0" />
23+
</Target>
24+
<Target Name="CopyRoslynCompilerFilesToOutputDirectory" AfterTargets="CopyFilesToOutputDirectory" DependsOnTargets="LocateRoslynToolsDestinationFolder">
25+
<Copy SourceFiles="@(RoslynCompilerFiles)" DestinationFolder="$(RoslynToolsDestinationFolder)" ContinueOnError="true" SkipUnchangedFiles="true" Retries="0" />
2426
<ItemGroup Condition="'$(MSBuildLastTaskResult)' == 'True'" >
2527
<FileWrites Include="$(RoslynToolsDestinationFolder)\*" />
2628
</ItemGroup>
2729
</Target>
28-
<Target Name = "KillVBCSCompilerAndRetryCopy" AfterTargets="CopyRoslynCompilerFilesToOutputDirectory" Condition="'$(MSBuildLastTaskResult)' == 'False'" >
30+
<Target Name="CheckIfShouldKillVBCSCompiler">
31+
<CheckIfVBCSCompilerWillOverride src="$(RoslynToolPath)\VBCSCompiler.exe" dest="$(RoslynToolsDestinationFolder)\VBCSCompiler.exe">
32+
<Output TaskParameter="WillOverride" PropertyName="ShouldKillVBCSCompiler" />
33+
</CheckIfVBCSCompilerWillOverride>
34+
</Target>
35+
<Target Name = "KillVBCSCompilerBeforeCopy" BeforeTargets="CopyRoslynCompilerFilesToOutputDirectory" DependsOnTargets="LocateRoslynToolsDestinationFolder;CheckIfShouldKillVBCSCompiler" >
36+
<KillProcess ProcessName="VBCSCompiler" ImagePath="$(RoslynToolsDestinationFolder)" Condition="'$(ShouldKillVBCSCompiler)' == 'True'" />
37+
</Target>
38+
<Target Name = "KillVBCSCompilerBeforeClean" AfterTargets="BeforeClean" DependsOnTargets="LocateRoslynToolsDestinationFolder">
2939
<KillProcess ProcessName="VBCSCompiler" ImagePath="$(RoslynToolsDestinationFolder)" />
30-
<Copy SourceFiles="@(RoslyCompilerFiles)" DestinationFolder="$(RoslynToolsDestinationFolder)" ContinueOnError="true" SkipUnchangedFiles="true" />
31-
<ItemGroup>
32-
<FileWrites Include="$(RoslynToolsDestinationFolder)\*" />
33-
</ItemGroup>
3440
</Target>
3541
<UsingTask TaskName="KillProcess" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
3642
<ParameterGroup>
@@ -57,9 +63,10 @@
5763
{
5864
var mo = results.Cast<ManagementObject>().FirstOrDefault();
5965
Log.LogMessage("ExecutablePath is {0}", (string)mo["ExecutablePath"]);
60-
if(mo != null && string.Compare((string)mo["ExecutablePath"], ImagePath, StringComparison.OrdinalIgnoreCase) > 0)
66+
if(mo != null && ((string)mo["ExecutablePath"]).StartsWith(ImagePath, StringComparison.OrdinalIgnoreCase))
6167
{
6268
p.Kill();
69+
p.WaitForExit();
6370
Log.LogMessage("{0} is killed", (string)mo["ExecutablePath"]);
6471
break;
6572
}
@@ -76,4 +83,23 @@
7683
</Code>
7784
</Task>
7885
</UsingTask>
86+
<UsingTask TaskName="CheckIfVBCSCompilerWillOverride" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
87+
<ParameterGroup>
88+
<Src ParameterType="System.String" Required="true" />
89+
<Dest ParameterType="System.String" Required="true" />
90+
<WillOverride ParameterType="System.Boolean" Output="true" />
91+
</ParameterGroup>
92+
<Task>
93+
<Reference Include="System.IO" />
94+
<Code Type="Fragment" Language="cs">
95+
<![CDATA[
96+
WillOverride = false;
97+
try {
98+
WillOverride = File.Exists(Src) && File.Exists(Dest) && (File.GetLastWriteTime(Src) != File.GetLastWriteTime(Dest));
99+
}
100+
catch { }
101+
]]>
102+
</Code>
103+
</Task>
104+
</UsingTask>
79105
</Project>

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ $binDirectory = Join-Path $projectRoot 'bin'
1414
$targetDirectory = Join-Path $binDirectory $roslynSubFolder
1515

1616
if (Test-Path $targetDirectory) {
17-
Remove-Item $targetDirectory -Force -Recurse
17+
Get-Process -Name "VBCSCompiler" -ErrorAction SilentlyContinue | Stop-Process -Force -PassThru -ErrorAction SilentlyContinue | Wait-Process
18+
Remove-Item $targetDirectory -Force -Recurse -ErrorAction SilentlyContinue
1819
}

0 commit comments

Comments
 (0)