Microsoft.Data.SqlClient.SNI.targets 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <!--
  2. *
  3. * Microsoft.Data.SqlClient.SNI.targets -
  4. *
  5. * WARNING: This MSBuild file requires MSBuild 4.0 features.
  6. *
  7. -->
  8. <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  9. <!--
  10. ******************************************************************************
  11. ** Load Per-User Settings **
  12. ******************************************************************************
  13. -->
  14. <!--
  15. NOTE: If the per-user settings file exists, import it now. The contained
  16. settings, if any, will override the default ones provided below.
  17. -->
  18. <Import Condition="'$(MSBuildThisFileDirectory)' != '' And
  19. HasTrailingSlash('$(MSBuildThisFileDirectory)') And
  20. Exists('$(MSBuildThisFileDirectory)Microsoft.Data.SqlClient.SNI.targets.user')"
  21. Project="$(MSBuildThisFileDirectory)Microsoft.Data.SqlClient.SNI.targets.user" />
  22. <!--
  23. ******************************************************************************
  24. ** Library Build Items **
  25. ******************************************************************************
  26. -->
  27. <ItemGroup>
  28. <SNIDllFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
  29. HasTrailingSlash('$(MSBuildThisFileDirectory)')"
  30. Include="$(MSBuildThisFileDirectory)**\Microsoft.Data.SqlClient.SNI.*.dll" />
  31. <SNIFiles Condition="'$(MSBuildThisFileDirectory)' != '' And
  32. HasTrailingSlash('$(MSBuildThisFileDirectory)')"
  33. Include="$(MSBuildThisFileDirectory)**\Microsoft.Data.SqlClient.SNI.*"
  34. Exclude="$(MSBuildThisFileDirectory)**\*.targets" />
  35. </ItemGroup>
  36. <ItemGroup>
  37. <ClickOnce Include="@(SNIDllFiles)">
  38. <InProject>false</InProject>
  39. <Visible>false</Visible>
  40. </ClickOnce>
  41. </ItemGroup>
  42. <!--
  43. ******************************************************************************
  44. ** Library Content Items **
  45. ******************************************************************************
  46. -->
  47. <ItemGroup Condition="'$(ContentSNIFiles)' != '' And
  48. '$(ContentSNIFiles)' != 'false' And
  49. '@(SNIFiles)' != ''">
  50. <Content Include="@(SNIFiles)">
  51. <Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
  52. <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  53. </Content>
  54. </ItemGroup>
  55. <!--
  56. ******************************************************************************
  57. ** Library Build Targets **
  58. ******************************************************************************
  59. -->
  60. <Target Name="CopySNIFiles"
  61. Condition="'$(CopySNIFiles)' != 'false' And
  62. '$(OutDir)' != '' And
  63. HasTrailingSlash('$(OutDir)') And
  64. Exists('$(OutDir)')"
  65. Inputs="@(SNIFiles)"
  66. Outputs="@(SNIFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')">
  67. <!--
  68. NOTE: Copy "Microsoft.Data.SqlClient.SNI.dll" and all related files, for every
  69. architecture that we support, to the build output directory.
  70. -->
  71. <Copy SourceFiles="@(SNIFiles)"
  72. DestinationFiles="@(SNIFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
  73. </Target>
  74. <Target Name="CopySNIRoleFiles"
  75. Condition="'@(WorkerRoleReferences)' != ''"
  76. Inputs="@(SNIFiles)"
  77. Outputs="@(SNIFiles -> '$(_IntermediateWorkerOutputPath)%(RecursiveDir)%(Filename)%(Extension)')">
  78. <!--
  79. NOTE: Copy "Microsoft.Data.SqlClient.SNI.dll" and all related files, for every
  80. architecture that we support, to the build output directory.
  81. -->
  82. <PropertyGroup>
  83. <_IntermediateWorkerOutputPath>%(WorkerRoleReferences.OutputDir)</_IntermediateWorkerOutputPath>
  84. </PropertyGroup>
  85. <Copy SourceFiles="@(SNIFiles)"
  86. DestinationFiles="@(SNIFiles -> '$(_IntermediateWorkerOutputPath)%(RecursiveDir)%(Filename)%(Extension)')" />
  87. </Target>
  88. <Target Name="AppendSNIDllsInManifest" Condition="'@(ClickOnce)' != ''" AfterTargets="BeforeBuild">
  89. <CreateItem Include="@(ClickOnce)" AdditionalMetadata="TargetPath=%(FileName)%(Extension);IsDataFile=false">
  90. <Output TaskParameter="Include" ItemName="_DeploymentManifestFiles" />
  91. </CreateItem>
  92. </Target>
  93. <Target Name="PublishSNIFiles" AfterTargets="Publish"
  94. Condition="'$(CopySNIFiles)' != 'false' And
  95. '$(PublishSNIFiles)' != 'false' And
  96. '$(PublishDir)' != '' And
  97. '$(_DeploymentApplicationDir)' == '' And
  98. HasTrailingSlash('$(PublishDir)') And
  99. Exists('$(PublishDir)') And
  100. '@(ClickOnce)' != ''"
  101. Inputs="@(SNIDllFiles)"
  102. Outputs="@(SNIDllFiles -> '$(PublishDir)%(RecursiveDir)%(Filename)%(Extension)')">
  103. <!--
  104. NOTE: Copy "Microsoft.Data.SqlClient.SNI.dll" only to the publish directory.
  105. -->
  106. <Copy SourceFiles="@(SNIDllFiles)"
  107. DestinationFiles="@(SNIDllFiles -> '$(PublishDir)%(RecursiveDir)%(Filename)%(Extension)')" />
  108. </Target>
  109. <Target Name="_CopySNIFilesToPublishFolder" AfterTargets="_CopyFilesToPublishFolder"
  110. Condition="'$(CopySNIFiles)' != 'false' And
  111. '$(_CopySNIFilesToPublishFolder)' != 'false' And
  112. '$(_DeploymentApplicationDir)' != '' And
  113. HasTrailingSlash('$(_DeploymentApplicationDir)') And
  114. Exists('$(_DeploymentApplicationDir)')"
  115. Inputs="@(SNIDllFiles)"
  116. Outputs="@(SNIDllFiles -> '$(_DeploymentApplicationDir)%(RecursiveDir)%(Filename)%(Extension)')">
  117. <!--
  118. NOTE: Copy "Microsoft.Data.SqlClient.SNI.dll" only to the publish output directory.
  119. -->
  120. <Copy SourceFiles="@(SNIDllFiles)"
  121. DestinationFiles="@(SNIDllFiles -> '$(_DeploymentApplicationDir)%(RecursiveDir)%(Filename)%(Extension)')" />
  122. </Target>
  123. <!--
  124. ******************************************************************************
  125. -->
  126. <Target Name="CleanSNIFiles"
  127. Condition="'$(CleanSNIFiles)' != 'false' And
  128. '$(OutDir)' != '' And
  129. HasTrailingSlash('$(OutDir)') And
  130. Exists('$(OutDir)')">
  131. <!--
  132. NOTE: Delete "Microsoft.Data.SqlClient.SNI.dll" and all related files, for every
  133. architecture that we support, from the build output directory.
  134. -->
  135. <Delete Files="@(SNIFiles -> '$(OutDir)%(RecursiveDir)%(Filename)%(Extension)')" />
  136. </Target>
  137. <!--
  138. ******************************************************************************
  139. -->
  140. <Target Name="CollectSNIFiles"
  141. Condition="'$(CollectSNIFiles)' != 'false'">
  142. <ItemGroup>
  143. <FilesForPackagingFromProject Include="@(SNIFiles)">
  144. <DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
  145. </FilesForPackagingFromProject>
  146. </ItemGroup>
  147. </Target>
  148. <!--
  149. ******************************************************************************
  150. ** Library Build Properties **
  151. ******************************************************************************
  152. -->
  153. <PropertyGroup>
  154. <PostBuildEventDependsOn>
  155. $(PostBuildEventDependsOn);
  156. CopySNIFiles;
  157. </PostBuildEventDependsOn>
  158. <PublishItemsOutputGroupDependsOn>
  159. $(PublishItemsOutputGroupDependsOn);
  160. PublishSNIFiles;
  161. </PublishItemsOutputGroupDependsOn>
  162. <BuildDependsOn>
  163. $(BuildDependsOn);
  164. CopySNIFiles;
  165. </BuildDependsOn>
  166. <PrepareForRunDependsOn>
  167. $(PrepareForRunDependsOn);
  168. CopySNIFiles;
  169. </PrepareForRunDependsOn>
  170. <CleanDependsOn>
  171. $(CleanDependsOn);
  172. CleanSNIFiles;
  173. </CleanDependsOn>
  174. </PropertyGroup>
  175. <!--
  176. ******************************************************************************
  177. ** Library Publish Properties for Visual Studio 201x **
  178. ******************************************************************************
  179. -->
  180. <PropertyGroup>
  181. <PipelineCollectFilesPhaseDependsOn>
  182. CollectSNIFiles;
  183. $(PipelineCollectFilesPhaseDependsOn);
  184. </PipelineCollectFilesPhaseDependsOn>
  185. <CollectRoleFilesDependsOn>
  186. $(CollectRoleFilesDependsOn);
  187. CollectSNIFiles;
  188. </CollectRoleFilesDependsOn>
  189. <CopyRoleFilesDependsOn>
  190. $(CopyRoleFilesDependsOn)
  191. CopySNIRoleFiles;
  192. </CopyRoleFilesDependsOn>
  193. </PropertyGroup>
  194. </Project>