diff --git a/tests/bindings-test/dotnet/MacCatalyst/bindings-test.csproj b/tests/bindings-test/dotnet/MacCatalyst/bindings-test.csproj
index 020a37a36bed..2d41c1d3e7e9 100644
--- a/tests/bindings-test/dotnet/MacCatalyst/bindings-test.csproj
+++ b/tests/bindings-test/dotnet/MacCatalyst/bindings-test.csproj
@@ -2,7 +2,12 @@
net6.0-maccatalyst
- maccatalyst-fat
-
+
+
+
+
+
+
+
diff --git a/tests/bindings-test/dotnet/iOS/bindings-test.csproj b/tests/bindings-test/dotnet/iOS/bindings-test.csproj
index 3796dff48e6c..fcee7e5c1230 100644
--- a/tests/bindings-test/dotnet/iOS/bindings-test.csproj
+++ b/tests/bindings-test/dotnet/iOS/bindings-test.csproj
@@ -2,7 +2,12 @@
net6.0-ios
- ios-fat
-
+
+
+
+
+
+
+
diff --git a/tests/bindings-test/dotnet/macOS/bindings-test.csproj b/tests/bindings-test/dotnet/macOS/bindings-test.csproj
index 3c5113401f55..7712aedfa386 100644
--- a/tests/bindings-test/dotnet/macOS/bindings-test.csproj
+++ b/tests/bindings-test/dotnet/macOS/bindings-test.csproj
@@ -2,7 +2,12 @@
net6.0-macos
- macos-fat
-
+
+
+
+
+
+
+
diff --git a/tests/bindings-test/dotnet/shared.targets b/tests/bindings-test/dotnet/shared.csproj
similarity index 95%
rename from tests/bindings-test/dotnet/shared.targets
rename to tests/bindings-test/dotnet/shared.csproj
index 4f05f206df22..1e07a6e7a93c 100644
--- a/tests/bindings-test/dotnet/shared.targets
+++ b/tests/bindings-test/dotnet/shared.csproj
@@ -7,11 +7,13 @@
latest
true
- $(MSBuildThisFileDirectory)\..\..
+ $([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)\..\..\..'))
$(RootTestsDirectory)\bindings-test
$(RootTestsDirectory)\test-libraries
+
+
diff --git a/tests/bindings-test/dotnet/tvOS/bindings-test.csproj b/tests/bindings-test/dotnet/tvOS/bindings-test.csproj
index 605a4a34297a..35f36b872a46 100644
--- a/tests/bindings-test/dotnet/tvOS/bindings-test.csproj
+++ b/tests/bindings-test/dotnet/tvOS/bindings-test.csproj
@@ -2,7 +2,12 @@
net6.0-tvos
- tvos-fat
-
+
+
+
+
+
+
+
diff --git a/tests/bindings-test/dotnet/watchOS/bindings-test.csproj b/tests/bindings-test/dotnet/watchOS/bindings-test.csproj
deleted file mode 100644
index 4335220ac681..000000000000
--- a/tests/bindings-test/dotnet/watchOS/bindings-test.csproj
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- net6.0-watchos
- watchos-fat
-
-
-
diff --git a/tests/fsharplibrary/dotnet/MacCatalyst/Makefile b/tests/fsharplibrary/dotnet/MacCatalyst/Makefile
new file mode 100644
index 000000000000..110d078f4577
--- /dev/null
+++ b/tests/fsharplibrary/dotnet/MacCatalyst/Makefile
@@ -0,0 +1 @@
+include ../shared.mk
diff --git a/tests/fsharplibrary/dotnet/MacCatalyst/fsharplibrary.fsproj b/tests/fsharplibrary/dotnet/MacCatalyst/fsharplibrary.fsproj
index 9ce1613a68ce..95aa0d0d99f0 100644
--- a/tests/fsharplibrary/dotnet/MacCatalyst/fsharplibrary.fsproj
+++ b/tests/fsharplibrary/dotnet/MacCatalyst/fsharplibrary.fsproj
@@ -3,5 +3,11 @@
net6.0-maccatalyst
-
+
+
+
+
+
+
+
diff --git a/tests/fsharplibrary/dotnet/iOS/Makefile b/tests/fsharplibrary/dotnet/iOS/Makefile
new file mode 100644
index 000000000000..110d078f4577
--- /dev/null
+++ b/tests/fsharplibrary/dotnet/iOS/Makefile
@@ -0,0 +1 @@
+include ../shared.mk
diff --git a/tests/fsharplibrary/dotnet/iOS/fsharplibrary.fsproj b/tests/fsharplibrary/dotnet/iOS/fsharplibrary.fsproj
index b66366a3cf11..bf70b871258c 100644
--- a/tests/fsharplibrary/dotnet/iOS/fsharplibrary.fsproj
+++ b/tests/fsharplibrary/dotnet/iOS/fsharplibrary.fsproj
@@ -3,5 +3,11 @@
net6.0-ios
-
+
+
+
+
+
+
+
diff --git a/tests/fsharplibrary/dotnet/macOS/Makefile b/tests/fsharplibrary/dotnet/macOS/Makefile
new file mode 100644
index 000000000000..110d078f4577
--- /dev/null
+++ b/tests/fsharplibrary/dotnet/macOS/Makefile
@@ -0,0 +1 @@
+include ../shared.mk
diff --git a/tests/fsharplibrary/dotnet/macOS/fsharplibrary.fsproj b/tests/fsharplibrary/dotnet/macOS/fsharplibrary.fsproj
index e74022fb65f1..48bdec73cbb4 100644
--- a/tests/fsharplibrary/dotnet/macOS/fsharplibrary.fsproj
+++ b/tests/fsharplibrary/dotnet/macOS/fsharplibrary.fsproj
@@ -3,5 +3,11 @@
net6.0-macos
-
+
+
+
+
+
+
+
diff --git a/tests/fsharplibrary/dotnet/shared.targets b/tests/fsharplibrary/dotnet/shared.fsproj
similarity index 79%
rename from tests/fsharplibrary/dotnet/shared.targets
rename to tests/fsharplibrary/dotnet/shared.fsproj
index b64096d48b1e..b1491e58b082 100644
--- a/tests/fsharplibrary/dotnet/shared.targets
+++ b/tests/fsharplibrary/dotnet/shared.fsproj
@@ -1,9 +1,10 @@
+
true
true
- $(MSBuildThisFileDirectory)\..\..
+ $([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)\..\..\..'))
$(RootTestsDirectory)\fsharplibrary
$(RootTestsDirectory)\..\product.snk
diff --git a/tests/fsharplibrary/dotnet/shared.mk b/tests/fsharplibrary/dotnet/shared.mk
new file mode 100644
index 000000000000..bc7ccd259626
--- /dev/null
+++ b/tests/fsharplibrary/dotnet/shared.mk
@@ -0,0 +1,29 @@
+TOP=../../../..
+include $(TOP)/Make.config
+include $(TOP)/mk/colors.mk
+
+prepare:
+ $(Q) $(MAKE) -C $(TOP)/tests/dotnet copy-dotnet-config
+
+reload:
+ $(Q) rm -Rf $(TOP)/tests/dotnet/packages
+ $(Q) $(MAKE) -C $(TOP) -j8 all
+ $(Q) $(MAKE) -C $(TOP) -j8 install
+ $(Q) git clean -xfdq
+
+reload-and-build:
+ $(Q) $(MAKE) reload
+ $(Q) $(MAKE) build
+
+reload-and-run:
+ $(Q) $(MAKE) reload
+ $(Q) $(MAKE) run
+
+build: prepare
+ $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS)
+
+run: prepare
+ $(Q) $(DOTNET6) build /bl *.csproj $(MSBUILD_VERBOSITY) $(BUILD_ARGUMENTS) -t:Run
+
+diag: prepare
+ $(Q) $(DOTNET6) build /v:diag msbuild.binlog
diff --git a/tests/fsharplibrary/dotnet/tvOS/Makefile b/tests/fsharplibrary/dotnet/tvOS/Makefile
new file mode 100644
index 000000000000..110d078f4577
--- /dev/null
+++ b/tests/fsharplibrary/dotnet/tvOS/Makefile
@@ -0,0 +1 @@
+include ../shared.mk
diff --git a/tests/fsharplibrary/dotnet/tvOS/fsharplibrary.fsproj b/tests/fsharplibrary/dotnet/tvOS/fsharplibrary.fsproj
index 891c5b149690..74bee04ac72b 100644
--- a/tests/fsharplibrary/dotnet/tvOS/fsharplibrary.fsproj
+++ b/tests/fsharplibrary/dotnet/tvOS/fsharplibrary.fsproj
@@ -3,5 +3,11 @@
net6.0-tvos
-
+
+
+
+
+
+
+
diff --git a/tests/fsharplibrary/dotnet/watchOS/fsharplibrary.fsproj b/tests/fsharplibrary/dotnet/watchOS/fsharplibrary.fsproj
deleted file mode 100644
index d77e283e2c96..000000000000
--- a/tests/fsharplibrary/dotnet/watchOS/fsharplibrary.fsproj
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
- net6.0-watchos
-
-
-