Skip to content

Commit 7fd34df

Browse files
authored
Enhance project and target files to generate debugging symbol package files (#2137)
1 parent c8b70f1 commit 7fd34df

10 files changed

+59
-21
lines changed

build.proj

+7-3
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@
3434
The provided path should be ended to a `\` character without white spaces: Ex. C:\x86\
3535
-->
3636
<DotnetPath></DotnetPath>
37+
<!-- Using these properties to compile and pack netfx dll fixes nuget package explorer error "Compiler flags: missing" -->
38+
<NugetPackProperties>DebugType=portable;DebugSymbols=true;IncludeSymbols=true;SymbolPackageFormat=snupkg;PublishRepositoryUrl=true;RepositoryUrl=https://github.com/dotnet/sqlclient;RepositoryType=git;EmbedUnTrackedSources=true;Deterministic=true;</NugetPackProperties>
39+
<!-- TF_BUILD is enabled only within AzureDevOps pipeline to support continuous integation build. -->
40+
<NugetPackProperties Condition="'$(TF_BUILD)' == 'true'">$(NugetPackProperties);ContinuousIntegrationBuild=true;</NugetPackProperties>
3741
</PropertyGroup>
3842

3943
<!-- Release Build properties must be turned on for Release purposes, and turned off for Code Coverage calculations -->
@@ -109,7 +113,7 @@
109113
</Target>
110114

111115
<Target Name="BuildNetFx" DependsOnTargets="RestoreNetFx" Condition="'$(IsEnabledWindows)' == 'true'">
112-
<MSBuild Projects="@(NetFxDriver)" Properties="$(CI);Platform=AnyCPU;$(ProjectProperties)" />
116+
<MSBuild Projects="@(NetFxDriver)" Properties="$(CI);Platform=AnyCPU;$(ProjectProperties);$(NugetPackProperties);" />
113117
</Target>
114118

115119
<Target Name="BuildSqlServerLibAnyOS" DependsOnTargets="RestoreSqlServerLib">
@@ -198,11 +202,11 @@
198202
<Target Name="BuildAKVNetFx" Condition="'$(IsEnabledWindows)' == 'true'">
199203
<MSBuild Projects="@(AKVProvider)" Targets="restore" Properties="TestTargetOS=$(TestOS)netfx" />
200204
<Message Text=">>> Building AKVNetFx [$(CI);TestTargetOS=$(TestOS)netfx;Platform=AnyCPU;$(TestProjectProperties)] ..." Condition="!$(ReferenceType.Contains('Package'))"/>
201-
<MSBuild Projects="@(AKVProvider)" Properties="$(CI);TestTargetOS=$(TestOS)netfx;Platform=AnyCPU;$(TestProjectProperties)" Condition="!$(ReferenceType.Contains('Package'))"/>
205+
<MSBuild Projects="@(AKVProvider)" Properties="$(CI);TestTargetOS=$(TestOS)netfx;Platform=AnyCPU;$(TestProjectProperties);$(NugetPackProperties);" Condition="!$(ReferenceType.Contains('Package'))"/>
202206

203207
<!-- Only build platform specific builds for Package reference types -->
204208
<Message Text=">>> Building AKVNetFx [$(CI);TestTargetOS=$(TestOS)netfx;Platform=$(Platform);$(TestProjectProperties)] ..." Condition="$(ReferenceType.Contains('Package'))"/>
205-
<MSBuild Projects="@(AKVProvider)" Properties="$(CI);TestTargetOS=$(TestOS)netfx;Platform=$(Platform);$(TestProjectProperties);" Condition="$(ReferenceType.Contains('Package'))"/>
209+
<MSBuild Projects="@(AKVProvider)" Properties="$(CI);TestTargetOS=$(TestOS)netfx;Platform=$(Platform);$(TestProjectProperties);$(NugetPackProperties);" Condition="$(ReferenceType.Contains('Package'))"/>
206210
</Target>
207211

208212
<Target Name="BuildAKVNetCore">

src/Directory.Build.props

+17
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,23 @@
7171
<DefineConstants>$(DefineConstants);ENCLAVE_SIMULATOR</DefineConstants>
7272
</PropertyGroup>
7373

74+
<!-- Packaging for source link-->
75+
<PropertyGroup>
76+
<DebugType>portable</DebugType>
77+
<DebugSymbols>true</DebugSymbols>
78+
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
79+
<PublishRepositoryUrl>true</PublishRepositoryUrl>
80+
<EmbedUnTrackedSources>true</EmbedUnTrackedSources>
81+
</PropertyGroup>
82+
<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
83+
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
84+
</PropertyGroup>
85+
<ItemGroup>
86+
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="$(MicrosoftSourceLinkGitHubVersion)" PrivateAssets="All">
87+
</PackageReference>
88+
</ItemGroup>
89+
90+
7491
<!-- Provides Version properties -->
7592
<Import Project="$(ToolsDir)props\Versions.props" />
7693
<Import Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))" Project="$(ToolsDir)props\VersionsNet8OrLater.props" />

src/Microsoft.Data.SqlClient/add-ons/AzureKeyVaultProvider/Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.csproj

+7-1
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,19 @@
1616
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1717
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
1818
</PropertyGroup>
19+
<PropertyGroup>
20+
<TargetFrameworkMonikerAssemblyAttributesPath>$([System.IO.Path]::Combine('$(IntermediateOutputPath)','$(GeneratedSourceFileName)'))</TargetFrameworkMonikerAssemblyAttributesPath>
21+
</PropertyGroup>
22+
<ItemGroup>
23+
<EmbeddedFiles Include="$(GeneratedAssemblyInfoFile)" />
24+
<EmbeddedFiles Include="$(TargetFrameworkMonikerAssemblyAttributesPath)" />
25+
</ItemGroup>
1926
<ItemGroup>
2027
<ProjectReference Condition="'$(TargetGroup)'=='netcoreapp' AND !$(ReferenceType.Contains('Package'))" Include="$(NetCoreSource)src\Microsoft.Data.SqlClient.csproj" />
2128
<ProjectReference Condition="'$(TargetGroup)'=='netfx' AND !$(ReferenceType.Contains('Package'))" Include="$(NetFxSource)src\Microsoft.Data.SqlClient.csproj" />
2229
<PackageReference Condition="$(ReferenceType.Contains('Package'))" Include="Microsoft.Data.SqlClient" Version="$(TestMicrosoftDataSqlClientVersion)" />
2330
</ItemGroup>
2431
<ItemGroup>
25-
<PackageReference Condition="$(BuildForRelease) == 'true'" Include="Microsoft.SourceLink.GitHub" Version="$(MicrosoftSourceLinkGitHubVersion)" PrivateAssets="All" />
2632
<PackageReference Include="Azure.Core" Version="$(AzureCoreVersion)" />
2733
<PackageReference Include="System.Text.Encodings.Web" Version="$(SystemTextEncodingsWebVersion)" />
2834
<PackageReference Include="Azure.Security.KeyVault.Keys" Version="$(AzureSecurityKeyVaultKeysVersion)" />

src/Microsoft.Data.SqlClient/netcore/src/Microsoft.Data.SqlClient.csproj

+5-3
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,12 @@
2222
<NoWarn>$(NoWarn);IL2026;IL2057;IL2072;IL2075</NoWarn>
2323
</PropertyGroup>
2424
<PropertyGroup>
25-
<DebugType>portable</DebugType>
26-
<DebugSymbols>true</DebugSymbols>
25+
<TargetFrameworkMonikerAssemblyAttributesPath>$([System.IO.Path]::Combine('$(IntermediateOutputPath)','$(TargetFrameworkMoniker).AssemblyAttributes$(DefaultLanguageSourceExtension)'))</TargetFrameworkMonikerAssemblyAttributesPath>
2726
</PropertyGroup>
27+
<ItemGroup>
28+
<EmbeddedFiles Include="$(GeneratedAssemblyInfoFile)" />
29+
<EmbeddedFiles Include="$(TargetFrameworkMonikerAssemblyAttributesPath)" />
30+
</ItemGroup>
2831
<!-- Contains common items shared between NetFx and NetCore -->
2932
<ItemGroup Condition="'$(OSGroup)' != 'AnyOS'">
3033
<Compile Include="..\..\src\Microsoft\Data\Common\ActivityCorrelator.cs">
@@ -1011,7 +1014,6 @@
10111014
<PackageReference Include="Microsoft.Identity.Client" Version="$(MicrosoftIdentityClientVersion)" />
10121015
<PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="$(MicrosoftIdentityModelProtocolsOpenIdConnectVersion)" />
10131016
<PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" Version="$(MicrosoftIdentityModelJsonWebTokensVersion)" />
1014-
<PackageReference Condition="$(BuildForRelease) == 'true'" Include="Microsoft.SourceLink.GitHub" Version="$(MicrosoftSourceLinkGitHubVersion)" PrivateAssets="All" />
10151017
</ItemGroup>
10161018
<Import Project="$(ToolsDir)targets\GenerateThisAssemblyCs.targets" />
10171019
<Import Project="$(ToolsDir)targets\ResolveContract.targets" Condition="'$(OSGroup)' == 'AnyOS'" />

src/Microsoft.Data.SqlClient/netfx/src/Microsoft.Data.SqlClient.csproj

+8-1
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,17 @@
1919
<ResolveComReferenceSilent>True</ResolveComReferenceSilent>
2020
<DefineConstants>$(DefineConstants);NETFRAMEWORK;</DefineConstants>
2121
</PropertyGroup>
22+
<!-- Override debugtype=portable in Directory.Build.props for netfx -->
23+
<PropertyGroup>
24+
<DebugType>full</DebugType>
25+
</PropertyGroup>
2226
<PropertyGroup>
2327
<TargetFrameworkMonikerAssemblyAttributesPath>$([System.IO.Path]::Combine('$(IntermediateOutputPath)','$(GeneratedSourceFileName)'))</TargetFrameworkMonikerAssemblyAttributesPath>
2428
</PropertyGroup>
29+
<ItemGroup>
30+
<EmbeddedFiles Include="$(GeneratedAssemblyInfoFile)" />
31+
<EmbeddedFiles Include="$(TargetFrameworkMonikerAssemblyAttributesPath)" />
32+
</ItemGroup>
2533
<PropertyGroup>
2634
<!-- CSC Compiler Options -->
2735
<NoConfig>True</NoConfig>
@@ -714,7 +722,6 @@
714722
</COMReference>
715723
</ItemGroup>
716724
<ItemGroup>
717-
<PackageReference Condition="$(BuildForRelease) == 'true'" Include="Microsoft.SourceLink.GitHub" Version="$(MicrosoftSourceLinkGitHubVersion)" PrivateAssets="All" />
718725
<PackageReference Include="System.Text.Encodings.Web">
719726
<Version>$(SystemTextEncodingsWebVersion)</Version>
720727
</PackageReference>

src/Microsoft.SqlServer.Server/Microsoft.SqlServer.Server.csproj

-3
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,6 @@
4040
<LastGenOutput>Strings.Designer.cs</LastGenOutput>
4141
</EmbeddedResource>
4242
</ItemGroup>
43-
<ItemGroup>
44-
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="$(MicrosoftSourceLinkGitHubVersion)" PrivateAssets="All" />
45-
</ItemGroup>
4643

4744
<Import Project="$(ToolsDir)targets\GenerateThisAssemblyCs.targets" />
4845
</Project>

tools/props/Versions.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
<MicrosoftIdentityModelJsonWebTokensVersion>6.35.0</MicrosoftIdentityModelJsonWebTokensVersion>
3434
<SystemBuffersVersion>4.5.1</SystemBuffersVersion>
3535
<SystemTextEncodingsWebVersion>6.0.0</SystemTextEncodingsWebVersion>
36-
<MicrosoftSourceLinkGitHubVersion>1.1.0</MicrosoftSourceLinkGitHubVersion>
36+
<MicrosoftSourceLinkGitHubVersion>8.0.0</MicrosoftSourceLinkGitHubVersion>
3737
</PropertyGroup>
3838
<!-- NetCore project dependencies -->
3939
<PropertyGroup>

tools/specs/Microsoft.Data.SqlClient.nuspec

+1-6
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<license type="expression">MIT</license>
1010
<projectUrl>https://aka.ms/sqlclientproject</projectUrl>
1111
<icon>dotnet.png</icon>
12-
<repository type="git" url="https://github.com/dotnet/sqlclient" />
12+
<repository type="git" url="https://github.com/dotnet/sqlclient" commit="$COMMITID$"/>
1313
<description>The current data provider for SQL Server and Azure SQL databases. This has replaced System.Data.SqlClient. These classes provide access to SQL and encapsulate database-specific protocols, including tabular data stream (TDS).
1414

1515
Commonly Used Types:
@@ -102,27 +102,22 @@ When using NuGet 3.x this package requires at least version 3.4.</description>
102102
<references>
103103
<group targetFramework="net462">
104104
<reference file="Microsoft.Data.SqlClient.dll" />
105-
<reference file="Microsoft.Data.SqlClient.pdb" />
106105
<reference file="Microsoft.Data.SqlClient.xml" />
107106
</group>
108107
<group targetFramework="net8.0">
109108
<reference file="Microsoft.Data.SqlClient.dll" />
110-
<reference file="Microsoft.Data.SqlClient.pdb" />
111109
<reference file="Microsoft.Data.SqlClient.xml" />
112110
</group>
113111
<group targetFramework="net6.0">
114112
<reference file="Microsoft.Data.SqlClient.dll" />
115-
<reference file="Microsoft.Data.SqlClient.pdb" />
116113
<reference file="Microsoft.Data.SqlClient.xml" />
117114
</group>
118115
<group targetFramework="netstandard2.0">
119116
<reference file="Microsoft.Data.SqlClient.dll" />
120-
<reference file="Microsoft.Data.SqlClient.pdb" />
121117
<reference file="Microsoft.Data.SqlClient.xml" />
122118
</group>
123119
<group targetFramework="netstandard2.1">
124120
<reference file="Microsoft.Data.SqlClient.dll" />
125-
<reference file="Microsoft.Data.SqlClient.pdb" />
126121
<reference file="Microsoft.Data.SqlClient.xml" />
127122
</group>
128123
</references>

tools/targets/GenerateNugetPackage.targets

+12-2
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,27 @@
55
<NugetPackageVersion Condition="'$(Configuration)' == 'Debug'">$(NugetPackageVersion)-debug</NugetPackageVersion>
66
</PropertyGroup>
77
<Message Text="Setting NugetPackageVersion to $(NugetPackageVersion)" />
8+
<!-- Get the current commit id and store it in CommitId property to be used in nuget pack command -->
9+
<Exec Command="git rev-parse HEAD" ConsoleToMSBuild="true">
10+
<Output TaskParameter="ConsoleOutput" PropertyName="CommitId" />
11+
</Exec>
12+
<Message Text="Commit Id = $(CommitId)" />
813
<Exec Command="powershell.exe -NonInteractive -executionpolicy Unrestricted ^
914
-command &quot;&amp;$(ToolsDir)scripts\downloadLatestNuget.ps1 -nugetDestPath '$(NuGetRoot)'&quot;" />
10-
<Exec Command="$(NuGetCmd) pack $(ToolsDir)specs\Microsoft.Data.SqlClient.nuspec -Version $(NugetPackageVersion) -OutputDirectory $(PackagesDir) -properties Configuration=$(Configuration)" />
15+
<Exec Command="$(NuGetCmd) pack -Symbols -SymbolPackageFormat snupkg $(ToolsDir)specs\Microsoft.Data.SqlClient.nuspec -Version $(NugetPackageVersion) -OutputDirectory $(PackagesDir) -properties &quot;COMMITID=$(CommitId);Configuration=$(Configuration)&quot;" />
1116
</Target>
1217
<Target Name="GenerateSqlServerPackage" Condition="'$(GenerateNuget)' == 'true'">
1318
<PropertyGroup>
1419
<SqlServerPackageVersion Condition="'$(Configuration)' == 'Debug'">$(SqlServerPackageVersion)-debug</SqlServerPackageVersion>
1520
</PropertyGroup>
1621
<Message Text="Setting SqlServerPackageVersion to $(SqlServerPackageVersion)" />
22+
<!-- Get the current commit id and store it in CommitId property to be used in nuget pack command -->
23+
<Exec Command="git rev-parse HEAD" ConsoleToMSBuild="true">
24+
<Output TaskParameter="ConsoleOutput" PropertyName="CommitId" />
25+
</Exec>
26+
<Message Text="Commit Id = $(CommitId)" />
1727
<Exec Command="powershell.exe -NonInteractive -executionpolicy Unrestricted ^
1828
-command &quot;&amp;$(ToolsDir)scripts\downloadLatestNuget.ps1 -nugetDestPath '$(NuGetRoot)'&quot;" />
19-
<Exec Command="$(NuGetCmd) pack $(ToolsDir)specs\Microsoft.SqlServer.Server.nuspec -Version $(SqlServerPackageVersion) -OutputDirectory $(PackagesDir) -properties Configuration=$(Configuration)" />
29+
<Exec Command="$(NuGetCmd) pack -Symbols -SymbolPackageFormat snupkg $(ToolsDir)specs\Microsoft.SqlServer.Server.nuspec -Version $(SqlServerPackageVersion) -OutputDirectory $(PackagesDir) -properties &quot;COMMITID=$(CommitId);Configuration=$(Configuration)&quot;" />
2030
</Target>
2131
</Project>

tools/targets/add-ons/GenerateAKVProviderNugetPackage.targets

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
<Message Text="Setting NugetPackageVersion to $(NugetPackageVersion)" />
88
<Exec Command="powershell.exe -NonInteractive -executionpolicy Unrestricted ^
99
-command &quot;&amp;$(ToolsDir)scripts\downloadLatestNuget.ps1 -nugetDestPath '$(NuGetRoot)'&quot;" />
10-
<Exec Command="$(NuGetCmd) pack $(ToolsDir)specs\add-ons\Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.nuspec -Version $(NugetPackageVersion) -OutputDirectory $(PackagesDir) -properties Configuration=$(Configuration)" />
10+
<Exec Command="$(NuGetCmd) pack $(ToolsDir)specs\add-ons\Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.nuspec -Version $(NugetPackageVersion) -Symbols -SymbolPackageFormat snupkg -OutputDirectory $(PackagesDir) -properties Configuration=$(Configuration);" />
1111
</Target>
1212
</Project>

0 commit comments

Comments
 (0)