Skip to content

Commit 97a4b43

Browse files
authored
Fix System.Web.Services.Description missing NetFx type forwards (#5708)
Improved PackageVerifier to handle more scenarios and have better reporting
1 parent 4fb9c5b commit 97a4b43

File tree

7 files changed

+917
-10
lines changed

7 files changed

+917
-10
lines changed

System.ServiceModel.sln

+6
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ServiceModel.Shim",
109109
EndProject
110110
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "System.ServiceModel.NetFramingBase.Ref", "src\System.ServiceModel.NetFramingBase\ref\System.ServiceModel.NetFramingBase.Ref.csproj", "{09D0456B-C1C6-40E4-AE8E-64D60189A7B2}"
111111
EndProject
112+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Web.Services.Description.Ref", "src\System.Web.Services.Description\ref\System.Web.Services.Description.Ref.csproj", "{0CF0FD4F-387F-4AF1-8509-80053EBA94CC}"
113+
EndProject
112114
Global
113115
GlobalSection(SolutionConfigurationPlatforms) = preSolution
114116
Debug|Any CPU = Debug|Any CPU
@@ -307,6 +309,10 @@ Global
307309
{09D0456B-C1C6-40E4-AE8E-64D60189A7B2}.Debug|Any CPU.Build.0 = Debug|Any CPU
308310
{09D0456B-C1C6-40E4-AE8E-64D60189A7B2}.Release|Any CPU.ActiveCfg = Release|Any CPU
309311
{09D0456B-C1C6-40E4-AE8E-64D60189A7B2}.Release|Any CPU.Build.0 = Release|Any CPU
312+
{0CF0FD4F-387F-4AF1-8509-80053EBA94CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
313+
{0CF0FD4F-387F-4AF1-8509-80053EBA94CC}.Debug|Any CPU.Build.0 = Debug|Any CPU
314+
{0CF0FD4F-387F-4AF1-8509-80053EBA94CC}.Release|Any CPU.ActiveCfg = Release|Any CPU
315+
{0CF0FD4F-387F-4AF1-8509-80053EBA94CC}.Release|Any CPU.Build.0 = Release|Any CPU
310316
EndGlobalSection
311317
GlobalSection(SolutionProperties) = preSolution
312318
HideSolutionNode = FALSE

eng/GenRefAssembly.targets

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
</PropertyGroup>
3131

3232
<Target Name="AddReferenceAssemblyToPackage" AfterTargets="AssignTargetPaths">
33-
<ItemGroup>
33+
<ItemGroup Condition="'$(SuppressRefAssemblyTargetFrameworks)' == '' OR !$(SuppressRefAssemblyTargetFrameworks.Contains('$(TargetFramework)'))">
3434
<TfmSpecificPackageFile Include="@(ResolvedReferenceAssemblyReference)" PackagePath="ref/$(TargetFramework)" />
3535
</ItemGroup>
3636
</Target>

src/System.Private.ServiceModel/tools/PackageChecker/Program.cs

+10-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ internal class Program
66
{
77
/// <summary>
88
/// This app validates a NuGet package is formed correctly. Currently it only validates that all types in the
9-
/// netstandard2.0 reference assembly are type forwarded for .NET Framework
9+
/// netstandard2.0 reference assembly are type forwarded for .NET Framework.
1010
/// </summary>
1111
/// <param name="package">The NuGet package to validate</param>
1212
/// <param name="verbose">Turns on verbose output</param>
@@ -34,15 +34,21 @@ private static int Main(FileInfo package, bool verbose)
3434
var netFxLibEntries = zipArchive.Entries.Where(e => e.FullName.StartsWith("lib/net4"));
3535
if (!netFxLibEntries.Any())
3636
{
37-
Console.Error.WriteLine("Expected assemblies in a lib/net4?? folder, none found");
37+
Console.Error.WriteLine("No assemblies found in a lib/net4?? folder. No type forwards to check.");
38+
Console.Error.WriteLine("If netfx isn't intended to be supported, this is expected.");
3839
return 1;
3940
}
4041

4142
var netstandardRefEntries = zipArchive.Entries.Where(e => e.FullName.StartsWith("ref/netstandard2.0/"));
4243
if (!netstandardRefEntries.Any())
4344
{
44-
Console.Error.WriteLine("Expected assemblies in the ref/netstandard2.0 folder, none found");
45-
return 1;
45+
Console.Error.WriteLine("No assemblies in the ref/netstandard2.0 folder, checking lib/netstandard2.0");
46+
netstandardRefEntries = zipArchive.Entries.Where(e => e.FullName.StartsWith("lib/netstandard2.0/"));
47+
if (!netstandardRefEntries.Any())
48+
{
49+
Console.Error.WriteLine("No assemblies in the lib/netstandard2.0 folder");
50+
return 1;
51+
}
4652
}
4753

4854
var runtimeFolder = @"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<AssemblyVersion>$(WcfAssemblyVersion)</AssemblyVersion>
4+
<StrongNameKeyId>Microsoft</StrongNameKeyId>
5+
<TargetFrameworks>netstandard2.0</TargetFrameworks>
6+
<AssemblyName>System.Web.Services.Description</AssemblyName>
7+
<RootNamespace>System.ServiceModel</RootNamespace>
8+
<CLSCompliant>true</CLSCompliant>
9+
<IsShipping>$(Ship_WcfPackages)</IsShipping>
10+
<IsShippingPackage>false</IsShippingPackage>
11+
</PropertyGroup>
12+
13+
</Project>

0 commit comments

Comments
 (0)