Skip to content

Commit

Permalink
[dotnet] Simplfy to only target .NET Standard 2.0 (SeleniumHQ#12608)
Browse files Browse the repository at this point in the history
* [dotnet] Simplfy to only target .NET Standard 2.0

Rather than targeting multiple individual target framework versions,
simplify the project targeting to only target .NET Standard 2.0. Doins
so, the resulting assemblies will be usable by projects targeting any of
the following versions:

* .NET Framework: 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
* .NET Core: 2.0, 2.1, 2.2, 3.0, 3.1
* .NET versions: 5.0, 6.0, 7.0

Additionally, they will be usable from the Mono and Xamarin frameworks.

This will simplify the build process and maintenance going forward, and
will allow the project to greatly reduce the complexity of the Bazel
builds.

As a note, this does remove support for .NET 4.5.x, the last version
of which (4.5.2) was released in 2014, and reached end-of-life in
April 2022.

* Add forgotten change to csproj file
  • Loading branch information
jimevans committed Aug 25, 2023
1 parent 8640ea8 commit 76702df
Show file tree
Hide file tree
Showing 24 changed files with 66 additions and 392 deletions.
88 changes: 12 additions & 76 deletions dotnet/src/support/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ load(
"ASSEMBLY_PRODUCT",
"ASSEMBLY_VERSION",
"SE_VERSION",
"SUPPORTED_NET_FRAMEWORKS",
"SUPPORTED_NET_STANDARD_VERSIONS",
)

generated_assembly_info(
Expand All @@ -29,8 +27,8 @@ generated_assembly_info(
version = ASSEMBLY_VERSION,
)

[csharp_library(
name = "{}".format(framework),
csharp_library(
name = "webdriver-support",
srcs = glob([
"*.cs",
"Events/*.cs",
Expand All @@ -40,65 +38,17 @@ generated_assembly_info(
]) + [":assembly-info"],
out = "WebDriver.Support",
target_frameworks = [
"{}".format(framework),
"netstandard2.0",
],
visibility = ["//visibility:public"],
deps = [
"@net//:System",
"@net//:System.Core",
"@net//:System.Data",
"@net//:System.Drawing",
"@net//:System.Xml",
"//dotnet/src/webdriver:{}".format(framework),
"//dotnet/src/webdriver:webdriver",
],
) for framework in SUPPORTED_NET_FRAMEWORKS]

[csharp_library(
name = "{}".format(standard_version),
srcs = glob([
"*.cs",
"Events/*.cs",
"Extensions/*.cs",
"PageObjects/**/*.cs",
"UI/*.cs",
]) + [":assembly-info"],
out = "WebDriver.Support",
target_frameworks = [
"{}".format(standard_version),
],
visibility = ["//visibility:public"],
deps = [
"//dotnet/src/webdriver:{}".format(standard_version),
],
) for standard_version in SUPPORTED_NET_STANDARD_VERSIONS]
)

[csharp_library(
name = "{}-strongnamed".format(framework),
srcs = glob([
"*.cs",
"Events/*.cs",
"Extensions/*.cs",
"PageObjects/**/*.cs",
"UI/*.cs",
]) + [":assembly-info"],
out = "strongnamed/WebDriver.Support",
keyfile = "//dotnet:WebDriver.snk",
target_frameworks = [
"{}".format(framework),
],
visibility = ["//visibility:public"],
deps = [
"@net//:System",
"@net//:System.Core",
"@net//:System.Data",
"@net//:System.Drawing",
"@net//:System.Xml",
"//dotnet/src/webdriver:{}-strongnamed".format(framework),
],
) for framework in SUPPORTED_NET_FRAMEWORKS]

[csharp_library(
name = "{}-strongnamed".format(standard_version),
csharp_library(
name = "webdriver-support-strongnamed",
srcs = glob([
"*.cs",
"Events/*.cs",
Expand All @@ -109,13 +59,13 @@ generated_assembly_info(
out = "strongnamed/WebDriver.Support",
keyfile = "//dotnet:WebDriver.snk",
target_frameworks = [
"{}".format(standard_version),
"netstandard2.0",
],
visibility = ["//visibility:public"],
deps = [
"//dotnet/src/webdriver:{}-strongnamed".format(standard_version),
"//dotnet/src/webdriver:webdriver-strongnamed",
],
) for standard_version in SUPPORTED_NET_STANDARD_VERSIONS]
)

copy_file(
name = "logo",
Expand All @@ -135,14 +85,7 @@ nuget_package(
package_version = "{}".format(SE_VERSION),
deps = [
":logo",
":net45",
":net46",
":net47",
":net48",
":net5.0",
":net6.0",
":netstandard2.0",
":netstandard2.1",
":webdriver-support",
],
)

Expand All @@ -157,14 +100,7 @@ nuget_package(
package_version = "{}".format(SE_VERSION),
deps = [
":logo",
":net45-strongnamed",
":net46-strongnamed",
":net47-strongnamed",
":net48-strongnamed",
":net5.0-strongnamed",
":net6.0-strongnamed",
":netstandard2.0-strongnamed",
":netstandard2.1-strongnamed",
":webdriver-support-strongnamed",
],
)

Expand Down
21 changes: 0 additions & 21 deletions dotnet/src/support/WebDriver.Support.StrongNamed.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -26,30 +26,9 @@
<icon>images\icon.png</icon>
<tags>selenium webdriver support browser automation</tags>
<dependencies>
<group targetFramework="net45">
<dependency id="Selenium.WebDriver.StrongNamed" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="net46">
<dependency id="Selenium.WebDriver.StrongNamed" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="net47">
<dependency id="Selenium.WebDriver.StrongNamed" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="net48">
<dependency id="Selenium.WebDriver.StrongNamed" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="netstandard2.0">
<dependency id="Selenium.WebDriver.StrongNamed" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="netstandard2.1">
<dependency id="Selenium.WebDriver.StrongNamed" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="net5.0">
<dependency id="Selenium.WebDriver.StrongNamed" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="net6.0">
<dependency id="Selenium.WebDriver.StrongNamed" version="$version$" exclude="Build,Analyzers" />
</group>
</dependencies>
<frameworkAssemblies>
<frameworkAssembly assemblyName="System.Drawing" />
Expand Down
2 changes: 1 addition & 1 deletion dotnet/src/support/WebDriver.Support.csproj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<TargetFrameworks>net6.0;net5.0;net48;net47;net46;net45;netstandard2.1;netstandard2.0</TargetFrameworks>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>WebDriver.Support</AssemblyName>
<RootNamespace>OpenQA.Selenium.Support</RootNamespace>
<BuildSystem>visual-studio</BuildSystem>
Expand Down
21 changes: 0 additions & 21 deletions dotnet/src/support/WebDriver.Support.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -26,30 +26,9 @@
<icon>images\icon.png</icon>
<tags>selenium webdriver support browser automation</tags>
<dependencies>
<group targetFramework="net45">
<dependency id="Selenium.WebDriver" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="net46">
<dependency id="Selenium.WebDriver" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="net47">
<dependency id="Selenium.WebDriver" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="net48">
<dependency id="Selenium.WebDriver" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="netstandard2.0">
<dependency id="Selenium.WebDriver" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="netstandard2.1">
<dependency id="Selenium.WebDriver" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="net5.0">
<dependency id="Selenium.WebDriver" version="$version$" exclude="Build,Analyzers" />
</group>
<group targetFramework="net6.0">
<dependency id="Selenium.WebDriver" version="$version$" exclude="Build,Analyzers" />
</group>
</dependencies>
<frameworkAssemblies>
<frameworkAssembly assemblyName="System.Drawing" />
Expand Down
Loading

0 comments on commit 76702df

Please sign in to comment.