|
1 | 1 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
2 | | - <Import Project="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.Extensions.props"/> |
| 2 | + <Import Project="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.Extensions.targets"/> |
3 | 3 |
|
4 | | - <ItemGroup> |
5 | | - <RoslynCompilerFiles Include="$(RoslynToolPath)\*"> |
6 | | - <Link>roslyn\%(RecursiveDir)%(Filename)%(Extension)</Link> |
7 | | - </RoslynCompilerFiles> |
8 | | - </ItemGroup> |
9 | | - <Target Name="IncludeRoslynCompilerFilesToFilesForPackagingFromProject" BeforeTargets="PipelineCollectFilesPhase" > |
| 4 | + <Target Name="SetRoslynCompilerFiles" DependsOnTargets="LocateRoslynCompilerFiles"> |
| 5 | + <Message Text="Using Roslyn from '$(RoslynToolPath)' folder" /> |
| 6 | + <ItemGroup> |
| 7 | + <RoslynCompilerFiles Include="$(RoslynToolPath)\*"> |
| 8 | + <Link>roslyn\%(RecursiveDir)%(Filename)%(Extension)</Link> |
| 9 | + </RoslynCompilerFiles> |
| 10 | + </ItemGroup> |
| 11 | + </Target> |
| 12 | + |
| 13 | + <Target Name="IncludeRoslynCompilerFilesToFilesForPackagingFromProject" BeforeTargets="PipelineCollectFilesPhase" DependsOnTargets="SetRoslynCompilerFiles" > |
10 | 14 | <ItemGroup> |
11 | 15 | <FilesForPackagingFromProject Include="@(RoslynCompilerFiles)"> |
12 | 16 | <DestinationRelativePath>bin\roslyn\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath> |
|
15 | 19 | </FilesForPackagingFromProject> |
16 | 20 | </ItemGroup> |
17 | 21 | </Target> |
| 22 | + |
18 | 23 | <Target Name="LocateRoslynToolsDestinationFolder" Condition=" '$(RoslynToolsDestinationFolder)' == '' "> |
19 | | - <PropertyGroup> |
20 | | - <RoslynToolsDestinationFolder>$(WebProjectOutputDir)\bin\roslyn</RoslynToolsDestinationFolder> |
21 | | - <RoslynToolsDestinationFolder Condition=" '$(WebProjectOutputDir)' == '' ">$(OutputPath)\roslyn</RoslynToolsDestinationFolder> |
| 24 | + <PropertyGroup> |
| 25 | + <RoslynToolsDestinationFolder>$(WebProjectOutputDir)\bin\roslyn</RoslynToolsDestinationFolder> |
| 26 | + <RoslynToolsDestinationFolder Condition=" '$(WebProjectOutputDir)' == '' ">$(OutputPath)\roslyn</RoslynToolsDestinationFolder> |
22 | 27 | </PropertyGroup> |
23 | 28 | </Target> |
24 | | - <Target Name="CopyRoslynCompilerFilesToOutputDirectory" AfterTargets="CopyFilesToOutputDirectory" DependsOnTargets="LocateRoslynToolsDestinationFolder"> |
| 29 | + |
| 30 | + <Target Name="CopyRoslynCompilerFilesToOutputDirectory" AfterTargets="CopyFilesToOutputDirectory" DependsOnTargets="LocateRoslynToolsDestinationFolder;SetRoslynCompilerFiles"> |
25 | 31 | <Copy SourceFiles="@(RoslynCompilerFiles)" DestinationFolder="$(RoslynToolsDestinationFolder)" ContinueOnError="true" SkipUnchangedFiles="true" Retries="0" /> |
26 | 32 | <ItemGroup Condition="'$(MSBuildLastTaskResult)' == 'True'" > |
27 | 33 | <FileWrites Include="$(RoslynToolsDestinationFolder)\*" /> |
28 | 34 | </ItemGroup> |
29 | 35 | </Target> |
30 | | - <Target Name="CheckIfShouldKillVBCSCompiler"> |
| 36 | + |
| 37 | + <Target Name="CheckIfShouldKillVBCSCompiler" DependsOnTargets="LocateRoslynCompilerFiles;LocateRoslynToolsDestinationFolder"> |
31 | 38 | <CheckIfVBCSCompilerWillOverride src="$(RoslynToolPath)\VBCSCompiler.exe" dest="$(RoslynToolsDestinationFolder)\VBCSCompiler.exe"> |
32 | 39 | <Output TaskParameter="WillOverride" PropertyName="ShouldKillVBCSCompiler" /> |
33 | 40 | </CheckIfVBCSCompilerWillOverride> |
34 | 41 | </Target> |
35 | | - <Target Name = "KillVBCSCompilerBeforeCopy" BeforeTargets="CopyRoslynCompilerFilesToOutputDirectory" DependsOnTargets="LocateRoslynToolsDestinationFolder;CheckIfShouldKillVBCSCompiler" > |
| 42 | + |
| 43 | + <Target Name="KillVBCSCompilerBeforeCopy" BeforeTargets="CopyRoslynCompilerFilesToOutputDirectory" DependsOnTargets="LocateRoslynToolsDestinationFolder;CheckIfShouldKillVBCSCompiler" > |
36 | 44 | <KillProcess ProcessName="VBCSCompiler" ImagePath="$(RoslynToolsDestinationFolder)" Condition="'$(ShouldKillVBCSCompiler)' == 'True'" /> |
37 | 45 | </Target> |
38 | | - <Target Name = "KillVBCSCompilerBeforeClean" AfterTargets="BeforeClean" DependsOnTargets="LocateRoslynToolsDestinationFolder"> |
| 46 | + |
| 47 | + <Target Name="KillVBCSCompilerBeforeClean" AfterTargets="BeforeClean" DependsOnTargets="LocateRoslynToolsDestinationFolder"> |
39 | 48 | <KillProcess ProcessName="VBCSCompiler" ImagePath="$(RoslynToolsDestinationFolder)" /> |
40 | 49 | </Target> |
| 50 | + |
41 | 51 | <UsingTask TaskName="KillProcess" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> |
42 | 52 | <ParameterGroup> |
43 | 53 | <ProcessName ParameterType="System.String" Required="true" /> |
|
89 | 99 | </Code> |
90 | 100 | </Task> |
91 | 101 | </UsingTask> |
| 102 | + |
92 | 103 | <UsingTask TaskName="CheckIfVBCSCompilerWillOverride" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll"> |
93 | 104 | <ParameterGroup> |
94 | 105 | <Src ParameterType="System.String" Required="true" /> |
|
102 | 113 | WillOverride = false; |
103 | 114 | try { |
104 | 115 | WillOverride = File.Exists(Src) && File.Exists(Dest) && (File.GetLastWriteTime(Src) != File.GetLastWriteTime(Dest)); |
105 | | - } |
| 116 | + } |
106 | 117 | catch { } |
107 | 118 | ]]> |
108 | 119 | </Code> |
|
0 commit comments