Skip to content

Commit 6b552fe

Browse files
committed
Dual-Target net472 and net8.0
1 parent 27eebb0 commit 6b552fe

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+612
-454
lines changed

.editorconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ insert_final_newline = true
1212
charset = utf-8-bom
1313

1414
# XML project files
15-
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj,wixproj}]
15+
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj,wixproj,msbuildproj}]
1616
indent_size = 2
1717

1818
# XML config files

Cyberduck.sln

+122-122
Large diffs are not rendered by default.

Directory.Build.props

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424
<PropertyGroup>
2525
<CyberduckDir>$(MSBuildThisFileDirectory)</CyberduckDir>
2626
<TargetBuildDir>$(ModulePath)target\</TargetBuildDir>
27+
<LibDir>$(TargetBuildDir)lib\</LibDir>
2728

2829
<BaseIntermediateOutputPath>$(TargetBuildDir)obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
2930
<BaseOutputPath>$(TargetBuildDir)</BaseOutputPath>
3031
<IntermediateOutputPath>$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
3132
<OutputPath>$(BaseOutputPath)</OutputPath>
3233

33-
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
3434
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
3535
<LangVersion>12</LangVersion>
3636
</PropertyGroup>

Directory.Build.targets

+60-55
Original file line numberDiff line numberDiff line change
@@ -16,66 +16,71 @@
1616

1717
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
1818

19-
<Sdk Name="Microsoft.Build.CentralPackageVersions" Version="2.0.41" />
19+
<Sdk Name="Microsoft.Build.CentralPackageVersions" Version="2.0.41" />
2020

21-
<ItemGroup>
22-
<CyberduckReference Update="Bonjour">
23-
<ProjectPath>$(CyberduckDir)bonjour\dll\Cyberduck.Bonjour.msbuildproj</ProjectPath>
24-
</CyberduckReference>
25-
<CyberduckReference Update="Bonjour.Native">
26-
<ProjectPath>$(CyberduckDir)bonjour\src\main\csharp\Cyberduck.Bonjour.Native.csproj</ProjectPath>
27-
</CyberduckReference>
28-
<CyberduckReference Update="Cli">
29-
<ProjectPath>$(CyberduckDir)cli\dll\Cyberduck.Cli.msbuildproj</ProjectPath>
30-
</CyberduckReference>
31-
<CyberduckReference Update="Core">
32-
<ProjectPath>$(CyberduckDir)core\dll\Cyberduck.Core.msbuildproj</ProjectPath>
33-
</CyberduckReference>
34-
<CyberduckReference Update="Core.Native">
35-
<ProjectPath>$(CyberduckDir)core\src\main\csharp\Cyberduck.Core.Native.csproj</ProjectPath>
36-
</CyberduckReference>
37-
<CyberduckReference Update="Core.Refresh">
38-
<ProjectPath>$(CyberduckDir)core\native\refresh\src\main\csharp\Cyberduck.Core.Refresh.csproj</ProjectPath>
39-
</CyberduckReference>
40-
<CyberduckReference Update="Cryptomator">
41-
<ProjectPath>$(CyberduckDir)cryptomator\dll\Cyberduck.Cryptomator.msbuildproj</ProjectPath>
42-
</CyberduckReference>
43-
<CyberduckReference Update="Importer">
44-
<ProjectPath>$(CyberduckDir)importer\dll\Cyberduck.Importer.msbuildproj</ProjectPath>
45-
</CyberduckReference>
46-
<CyberduckReference Update="Protocols">
47-
<ProjectPath>$(CyberduckDir)protocols\dll\Cyberduck.Protocols.msbuildproj</ProjectPath>
48-
</CyberduckReference>
49-
</ItemGroup>
21+
<PropertyGroup>
22+
<AssemblySearchPaths>$(LibDir);$(AssemblySearchPaths)</AssemblySearchPaths>
23+
</PropertyGroup>
5024

51-
<ItemGroup>
52-
<CyberduckProjectReferences Include="@(CyberduckReference->HasMetadata('ProjectPath'))" Condition=" '$(BuildingInsideVisualStudio)'=='True' " />
53-
<CyberduckLibraryReferences Include="@(CyberduckReference)" Exclude="@(CyberduckProjectReferences)" />
25+
<PropertyGroup Condition=" '$(TargetFramework)' != '' ">
26+
<LibDirFramework Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net472'))">net472</LibDirFramework>
27+
<LibDirFramework Condition="$([MSBuild]::IsTargetFrameworkCompatible('$(TargetFramework)', 'net8.0'))">net8.0</LibDirFramework>
28+
<AssemblySearchPaths Condition=" '$(LibDirFramework)' != '' ">$(LibDir)$(LibDirFramework)\;$(AssemblySearchPaths)</AssemblySearchPaths>
29+
</PropertyGroup>
5430

55-
<ProjectReference Include="@(CyberduckProjectReferences->'%(ProjectPath)')">
56-
<Name>Cyberduck.%(Identity)</Name>
57-
</ProjectReference>
58-
<Reference Include="@(CyberduckLibraryReferences->'Cyberduck.%(Identity)')">
59-
<HintPath>$(TargetBuildDir)%(Identity).dll</HintPath>
60-
</Reference>
61-
</ItemGroup>
31+
<ItemGroup>
32+
<CyberduckReference Update="Bonjour">
33+
<ProjectPath>$(CyberduckDir)bonjour\dll\Cyberduck.Bonjour.msbuildproj</ProjectPath>
34+
</CyberduckReference>
35+
<CyberduckReference Update="Bonjour.Native">
36+
<ProjectPath>$(CyberduckDir)bonjour\src\main\csharp\Cyberduck.Bonjour.Native.csproj</ProjectPath>
37+
</CyberduckReference>
38+
<CyberduckReference Update="Cli">
39+
<ProjectPath>$(CyberduckDir)cli\dll\Cyberduck.Cli.msbuildproj</ProjectPath>
40+
</CyberduckReference>
41+
<CyberduckReference Update="Core">
42+
<ProjectPath>$(CyberduckDir)core\dll\Cyberduck.Core.msbuildproj</ProjectPath>
43+
</CyberduckReference>
44+
<CyberduckReference Update="Core.Native">
45+
<ProjectPath>$(CyberduckDir)core\src\main\csharp\Cyberduck.Core.Native.csproj</ProjectPath>
46+
</CyberduckReference>
47+
<CyberduckReference Update="Core.Refresh">
48+
<ProjectPath>$(CyberduckDir)core\native\refresh\src\main\csharp\Cyberduck.Core.Refresh.csproj</ProjectPath>
49+
</CyberduckReference>
50+
<CyberduckReference Update="Cryptomator">
51+
<ProjectPath>$(CyberduckDir)cryptomator\dll\Cyberduck.Cryptomator.msbuildproj</ProjectPath>
52+
</CyberduckReference>
53+
<CyberduckReference Update="Importer">
54+
<ProjectPath>$(CyberduckDir)importer\dll\Cyberduck.Importer.msbuildproj</ProjectPath>
55+
</CyberduckReference>
56+
<CyberduckReference Update="Protocols">
57+
<ProjectPath>$(CyberduckDir)protocols\dll\Cyberduck.Protocols.msbuildproj</ProjectPath>
58+
</CyberduckReference>
6259

63-
<PropertyGroup Condition=" '$(NETCoreSdkVersion)'!='' ">
64-
<!-- Treat SDK 6.0.301 as last known to work. -->
65-
<NETSDKBeforeFeature>$([MSBuild]::VersionLessThanOrEquals('$(NETCoreSdkVersion)', '6.0.301'))</NETSDKBeforeFeature>
66-
<NETSDKAfterFix>$([MSBuild]::VersionGreaterThanOrEquals('$(NETCoreSdkVersion)', '6.0.401'))</NETSDKAfterFix>
67-
<CoreCompileDependsOn Condition="!($(NETSDKBeforeFeature) or $(NETSDKAfterFix))">SDKFix_RemoveDuplicateAnalyzers;$(CoreCompileDependsOn)</CoreCompileDependsOn>
68-
</PropertyGroup>
60+
<CyberduckProjectReferences Include="@(CyberduckReference->HasMetadata('ProjectPath'))" Condition=" '$(BuildingInsideVisualStudio)'=='True' " />
61+
<CyberduckLibraryReferences Include="@(CyberduckReference->'Cyberduck.%(Identity)')" Exclude="@(CyberduckProjectReferences)" />
62+
<ProjectReference Include="@(CyberduckProjectReferences->'%(ProjectPath)')">
63+
<Name>Cyberduck.%(Identity)</Name>
64+
</ProjectReference>
65+
<Reference Include="@(CyberduckLibraryReferences)" />
66+
</ItemGroup>
6967

70-
<Target Name="SDKFix_RemoveDuplicateAnalyzers">
71-
<ItemGroup>
72-
<FilteredAnalyzer Include="@(Analyzer-&gt;Distinct())" />
73-
<Analyzer Remove="@(Analyzer)" />
74-
<Analyzer Include="@(FilteredAnalyzer)" />
75-
<FilteredAnalyzer Remove="@(FilteredAnalyzer)" />
76-
</ItemGroup>
68+
<PropertyGroup Condition=" '$(NETCoreSdkVersion)'!='' ">
69+
<!-- Treat SDK 6.0.301 as last known to work. -->
70+
<NETSDKBeforeFeature>$([MSBuild]::VersionLessThanOrEquals('$(NETCoreSdkVersion)', '6.0.301'))</NETSDKBeforeFeature>
71+
<NETSDKAfterFix>$([MSBuild]::VersionGreaterThanOrEquals('$(NETCoreSdkVersion)', '6.0.401'))</NETSDKAfterFix>
72+
<CoreCompileDependsOn Condition="!($(NETSDKBeforeFeature) or $(NETSDKAfterFix))">SDKFix_RemoveDuplicateAnalyzers;$(CoreCompileDependsOn)</CoreCompileDependsOn>
73+
</PropertyGroup>
74+
75+
<Target Name="SDKFix_RemoveDuplicateAnalyzers">
76+
<ItemGroup>
77+
<FilteredAnalyzer Include="@(Analyzer-&gt;Distinct())" />
78+
<Analyzer Remove="@(Analyzer)" />
79+
<Analyzer Include="@(FilteredAnalyzer)" />
80+
<FilteredAnalyzer Remove="@(FilteredAnalyzer)" />
81+
</ItemGroup>
7782
</Target>
78-
83+
7984
<Target Name="_ExportReference" />
8085

81-
</Project>
86+
</Project>

Packages.props

+2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,9 @@
3333
<PackageReference Update="ReactiveUI" Version="17.1.50" />
3434
<PackageReference Update="ReactiveUI.WPF" Version="17.1.50" />
3535
<PackageReference Update="StructureMap" Version="2.6.4.1" />
36+
<PackageReference Update="System.Configuration.ConfigurationManager" Version="8.0.0" />
3637
<PackageReference Update="System.Memory" Version="4.5.5" />
38+
<PackageReference Update="System.Runtime.Caching" Version="8.0.0" />
3739

3840
<GlobalPackageReference Include="MSBuildTasks" Version="1.5.0.235" GeneratePathProperty="true" />
3941
</ItemGroup>
+13-10
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
<Project Sdk="IKVM.NET.Sdk">
2-
<PropertyGroup>
3-
<TargetFramework>net472</TargetFramework>
4-
</PropertyGroup>
2+
<PropertyGroup>
3+
<!--
4+
Only really used in Cyberduck.
5+
-->
6+
<TargetFramework>net472</TargetFramework>
7+
</PropertyGroup>
58

6-
<ItemGroup>
7-
<CyberduckReference Include="Core" />
8-
9-
<Convert Include="$(TargetBuildDir)ch.cyberduck.bonjour.jar" />
10-
<Convert Include="$(TargetBuildDir)com.apple.dnssd.jar" />
11-
</ItemGroup>
12-
</Project>
9+
<ItemGroup>
10+
<CyberduckReference Include="Core" />
11+
12+
<Convert Include="$(TargetBuildDir)ch.cyberduck.bonjour.jar" />
13+
<Convert Include="$(TargetBuildDir)com.apple.dnssd.jar" />
14+
</ItemGroup>
15+
</Project>

bonjour/dll/pom.xml

+3-1
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@
5858
<configuration>
5959
<artifacts>
6060
<artifact>
61+
<classifier>net472</classifier>
6162
<type>dll</type>
62-
<file>${project.build.directory}/Cyberduck.Bonjour.dll</file>
63+
<file>${project.build.directory}/net472/Cyberduck.Bonjour.dll</file>
6364
</artifact>
6465
</artifacts>
6566
</configuration>
@@ -75,6 +76,7 @@
7576
<dependency>
7677
<groupId>ch.cyberduck</groupId>
7778
<artifactId>Cyberduck.Core</artifactId>
79+
<classifier>net472</classifier>
7880
<version>${project.version}</version>
7981
<type>dll</type>
8082
</dependency>

bonjour/native/pom.xml

+3-1
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@
3636
<configuration>
3737
<artifacts>
3838
<artifact>
39+
<classifier>net472</classifier>
3940
<type>dll</type>
40-
<file>${project.build.directory}/Cyberduck.Bonjour.Native.dll</file>
41+
<file>${project.build.directory}/net472/Cyberduck.Bonjour.Native.dll</file>
4142
</artifact>
4243
</artifacts>
4344
</configuration>
@@ -83,6 +84,7 @@
8384
<dependency>
8485
<groupId>ch.cyberduck</groupId>
8586
<artifactId>Cyberduck.Bonjour</artifactId>
87+
<classifier>net472</classifier>
8688
<type>dll</type>
8789
<version>${project.version}</version>
8890
<scope>runtime</scope>

bonjour/pom.xml

+1
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
<dependency>
6767
<groupId>ch.cyberduck</groupId>
6868
<artifactId>Cyberduck.Core</artifactId>
69+
<classifier>net472</classifier>
6970
<type>dll</type>
7071
<version>${project.version}</version>
7172
<scope>runtime</scope>

bonjour/src/main/csharp/Cyberduck.Bonjour.Native.csproj

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4+
<!--
5+
Only really used in Cyberduck.
6+
-->
47
<TargetFramework>net472</TargetFramework>
58
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
69
</PropertyGroup>
@@ -13,12 +16,6 @@
1316
<PackageReference Include="IKVM" />
1417
</ItemGroup>
1518

16-
<ItemGroup>
17-
<Reference Include="Microsoft.VisualBasic" />
18-
<Reference Include="Microsoft.CSharp" />
19-
<Reference Include="System.Windows.Forms" />
20-
</ItemGroup>
21-
2219
<ItemGroup>
2320
<COMReference Include="Bonjour">
2421
<Guid>{18FBED6D-F2B7-4EC8-A4A4-46282E635308}</Guid>

bonjour/src/main/csharp/Directory.Build.props

-5
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,4 @@
2020
</PropertyGroup>
2121
<Import Project="$(_BonjourBasePath)native/Directory.Build.props" />
2222

23-
<PropertyGroup>
24-
<Platforms>x64</Platforms>
25-
<Platform Condition=" '$(Platform)'=='' ">x64</Platform>
26-
</PropertyGroup>
27-
2823
</Project>

cli/dll/Cyberduck.Cli.msbuildproj

+10-10
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
<Project Sdk="IKVM.NET.Sdk">
2-
<PropertyGroup>
3-
<TargetFramework>net472</TargetFramework>
4-
</PropertyGroup>
2+
<PropertyGroup>
3+
<TargetFramework>net472</TargetFramework>
4+
</PropertyGroup>
55

6-
<ItemGroup>
7-
<CyberduckReference Include="Core;Bonjour;Protocols;Cryptomator" />
6+
<ItemGroup>
7+
<CyberduckReference Include="Core;Bonjour;Protocols;Cryptomator" />
88

9-
<Convert Include="$(TargetBuildDir)ch.cyberduck.cli.jar" />
10-
<Convert Include="$(TargetBuildDir)commons-cli.commons-cli.jar" />
11-
<Convert Include="$(TargetBuildDir)org.fusesource.jansi.jansi.jar" />
12-
</ItemGroup>
13-
</Project>
9+
<Convert Include="$(TargetBuildDir)ch.cyberduck.cli.jar" />
10+
<Convert Include="$(TargetBuildDir)commons-cli.commons-cli.jar" />
11+
<Convert Include="$(TargetBuildDir)org.fusesource.jansi.jansi.jar" />
12+
</ItemGroup>
13+
</Project>

cli/dll/pom.xml

+6-1
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,9 @@
7070
<configuration>
7171
<artifacts>
7272
<artifact>
73+
<classifier>net472</classifier>
7374
<type>dll</type>
74-
<file>${project.build.directory}/Cyberduck.Cli.dll</file>
75+
<file>${project.build.directory}/net472/Cyberduck.Cli.dll</file>
7576
</artifact>
7677
</artifacts>
7778
</configuration>
@@ -90,26 +91,30 @@
9091
<dependency>
9192
<groupId>ch.cyberduck</groupId>
9293
<artifactId>Cyberduck.Core</artifactId>
94+
<classifier>net472</classifier>
9395
<type>dll</type>
9496
<version>${project.version}</version>
9597
<scope>runtime</scope>
9698
</dependency>
9799
<dependency>
98100
<groupId>ch.cyberduck</groupId>
99101
<artifactId>Cyberduck.Core.Native</artifactId>
102+
<classifier>net472</classifier>
100103
<type>dll</type>
101104
<version>${project.version}</version>
102105
</dependency>
103106
<dependency>
104107
<groupId>ch.cyberduck</groupId>
105108
<artifactId>Cyberduck.Protocols</artifactId>
109+
<classifier>net472</classifier>
106110
<type>dll</type>
107111
<version>${project.version}</version>
108112
<scope>runtime</scope>
109113
</dependency>
110114
<dependency>
111115
<groupId>ch.cyberduck</groupId>
112116
<artifactId>Cyberduck.Cryptomator</artifactId>
117+
<classifier>net472</classifier>
113118
<type>dll</type>
114119
<version>${project.version}</version>
115120
<scope>runtime</scope>

cli/src/main/csharp/duck.csproj

+5-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
<Link>$(Filename)$(Extension)</Link>
2121
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
2222
</Content>
23+
<Content Include="$(TargetBuildDir)lib\jnidispatch.dll">
24+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
25+
<Link>$(Filename)$(Extension)</Link>
26+
</Content>
2327

2428
<Content Include="$(CyberduckDir)bookmarks/*.duck">
2529
<Link>bookmarks/%(Filename)%(Extension)</Link>
@@ -42,4 +46,4 @@
4246
<PackageReference Include="System.Memory" />
4347
</ItemGroup>
4448

45-
</Project>
49+
</Project>

cli/windows/Directory.Build.props

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
<PropertyGroup>
1919
<ModulePath Condition="'$(ModulePath)'==''">$(MSBuildThisFileDirectory)</ModulePath>
20+
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
2021
</PropertyGroup>
2122

2223
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.Props', $(MSBuildThisFileDirectory)../))" />

cli/windows/pom.xml

+5
Original file line numberDiff line numberDiff line change
@@ -111,33 +111,38 @@
111111
<dependency>
112112
<groupId>ch.cyberduck</groupId>
113113
<artifactId>Cyberduck.Core</artifactId>
114+
<classifier>net472</classifier>
114115
<type>dll</type>
115116
<version>${project.version}</version>
116117
<scope>runtime</scope>
117118
</dependency>
118119
<dependency>
119120
<groupId>ch.cyberduck</groupId>
120121
<artifactId>Cyberduck.Core.Native</artifactId>
122+
<classifier>net472</classifier>
121123
<type>dll</type>
122124
<version>${project.version}</version>
123125
</dependency>
124126
<dependency>
125127
<groupId>ch.cyberduck</groupId>
126128
<artifactId>Cyberduck.Protocols</artifactId>
129+
<classifier>net472</classifier>
127130
<type>dll</type>
128131
<version>${project.version}</version>
129132
<scope>runtime</scope>
130133
</dependency>
131134
<dependency>
132135
<groupId>ch.cyberduck</groupId>
133136
<artifactId>Cyberduck.Cryptomator</artifactId>
137+
<classifier>net472</classifier>
134138
<type>dll</type>
135139
<version>${project.version}</version>
136140
<scope>runtime</scope>
137141
</dependency>
138142
<dependency>
139143
<groupId>ch.cyberduck</groupId>
140144
<artifactId>Cyberduck.Cli</artifactId>
145+
<classifier>net472</classifier>
141146
<type>dll</type>
142147
<version>${project.version}</version>
143148
<scope>runtime</scope>

0 commit comments

Comments
 (0)