OSS인증 - 팀장 : 서영민 - 팀원 : 김현, 박상진, 박승영, 윤동수, 김성미
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

53 lines
3.1 KiB

4 years ago
  1. <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  2. <Import Project="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.Extensions.targets"/>
  3. <Target Name="SetRoslynCompilerFiles" DependsOnTargets="LocateRoslynCompilerFiles">
  4. <Message Text="Using Roslyn from '$(RoslynToolPath)' folder" />
  5. <ItemGroup>
  6. <RoslynCompilerFiles Include="$(RoslynToolPath)\*">
  7. <Link>roslyn\%(RecursiveDir)%(Filename)%(Extension)</Link>
  8. </RoslynCompilerFiles>
  9. </ItemGroup>
  10. </Target>
  11. <Target Name="IncludeRoslynCompilerFilesToFilesForPackagingFromProject" BeforeTargets="PipelineCollectFilesPhase" DependsOnTargets="SetRoslynCompilerFiles" >
  12. <ItemGroup>
  13. <FilesForPackagingFromProject Include="@(RoslynCompilerFiles)">
  14. <DestinationRelativePath>bin\roslyn\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
  15. <FromTarget>IncludeRoslynCompilerFilesToFilesForPackagingFromProject</FromTarget>
  16. <Category>Run</Category>
  17. </FilesForPackagingFromProject>
  18. </ItemGroup>
  19. </Target>
  20. <Target Name="LocateRoslynToolsDestinationFolder" Condition=" '$(RoslynToolsDestinationFolder)' == '' ">
  21. <PropertyGroup>
  22. <RoslynToolsDestinationFolder>$(WebProjectOutputDir)\bin\roslyn</RoslynToolsDestinationFolder>
  23. <RoslynToolsDestinationFolder Condition=" '$(WebProjectOutputDir)' == '' ">$(OutputPath)\roslyn</RoslynToolsDestinationFolder>
  24. </PropertyGroup>
  25. </Target>
  26. <Target Name="CopyRoslynCompilerFilesToOutputDirectory" AfterTargets="CopyFilesToOutputDirectory" DependsOnTargets="LocateRoslynToolsDestinationFolder;SetRoslynCompilerFiles">
  27. <Copy SourceFiles="@(RoslynCompilerFiles)" DestinationFolder="$(RoslynToolsDestinationFolder)" ContinueOnError="true" SkipUnchangedFiles="true" Retries="0" />
  28. <ItemGroup Condition="'$(MSBuildLastTaskResult)' == 'True'" >
  29. <FileWrites Include="$(RoslynToolsDestinationFolder)\*" />
  30. </ItemGroup>
  31. </Target>
  32. <Target Name="CheckIfShouldKillVBCSCompiler" DependsOnTargets="LocateRoslynCompilerFiles;LocateRoslynToolsDestinationFolder">
  33. <CheckIfVBCSCompilerWillOverride src="$(RoslynToolPath)\VBCSCompiler.exe" dest="$(RoslynToolsDestinationFolder)\VBCSCompiler.exe">
  34. <Output TaskParameter="WillOverride" PropertyName="ShouldKillVBCSCompiler" />
  35. </CheckIfVBCSCompilerWillOverride>
  36. </Target>
  37. <Target Name="KillVBCSCompilerBeforeCopy" BeforeTargets="CopyRoslynCompilerFilesToOutputDirectory" DependsOnTargets="LocateRoslynToolsDestinationFolder;CheckIfShouldKillVBCSCompiler" >
  38. <KillProcess ProcessName="VBCSCompiler" ImagePath="$(RoslynToolsDestinationFolder)" Condition="'$(ShouldKillVBCSCompiler)' == 'True'" />
  39. </Target>
  40. <Target Name="KillVBCSCompilerBeforeClean" AfterTargets="BeforeClean" DependsOnTargets="LocateRoslynToolsDestinationFolder">
  41. <KillProcess ProcessName="VBCSCompiler" ImagePath="$(RoslynToolsDestinationFolder)" />
  42. </Target>
  43. <UsingTask TaskName="KillProcess" AssemblyFile="..\..\tasks\DotNetCompilerPlatformTasks.dll" />
  44. <UsingTask TaskName="CheckIfVBCSCompilerWillOverride" AssemblyFile="..\..\tasks\DotNetCompilerPlatformTasks.dll" />
  45. </Project>