diff --git a/eng/liveBuilds.targets b/eng/liveBuilds.targets
index 38755cc50ae197..42cae8568797aa 100644
--- a/eng/liveBuilds.targets
+++ b/eng/liveBuilds.targets
@@ -138,8 +138,6 @@
Include="$(MonoArtifactsPath)\cross\*.*" />
-
@@ -176,7 +174,7 @@
$(LibrariesAllBinArtifactsPath)*.dll;
$(LibrariesAllBinArtifactsPath)*.pdb"
IsNative="" />
-
-
+ $(LibrariesNativeArtifactsPath)wasm\runtimes\debug\dotnet.js;
+ $(LibrariesNativeArtifactsPath)wasm\runtimes\debug\dotnet.wasm;"
+ IsNative="true"
+ NativeSubDirectory="wasm/runtimes/debug/" />
+
diff --git a/src/installer/pkg/projects/netcoreapp/src/netcoreapp.depproj b/src/installer/pkg/projects/netcoreapp/src/netcoreapp.depproj
index 863f359bf37003..f49103041893e9 100644
--- a/src/installer/pkg/projects/netcoreapp/src/netcoreapp.depproj
+++ b/src/installer/pkg/projects/netcoreapp/src/netcoreapp.depproj
@@ -76,11 +76,6 @@
runtimes/$(PackageRID)/native/include/%(RecursiveDir)
-
- runtimes/$(PackageRID)/native/wasm/runtimes/%(RecursiveDir)
-
-
runtimes/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture)/native
@@ -105,7 +100,7 @@
-
+
diff --git a/src/libraries/Native/native-binplace.proj b/src/libraries/Native/native-binplace.proj
index a17aab30baef9f..2cd59c4856f445 100644
--- a/src/libraries/Native/native-binplace.proj
+++ b/src/libraries/Native/native-binplace.proj
@@ -20,6 +20,12 @@
+
+ wasm\runtimes\debug\
+
+
+ wasm\runtimes\release\
+
diff --git a/src/libraries/pretest.proj b/src/libraries/pretest.proj
index 01ff1b776e79aa..94141031b8b855 100644
--- a/src/libraries/pretest.proj
+++ b/src/libraries/pretest.proj
@@ -18,7 +18,6 @@
-
include/%(RecursiveDir)
-
- wasm/%(RecursiveDir)
-
diff --git a/src/libraries/src.proj b/src/libraries/src.proj
index 35120f01101ee3..91225466df0112 100644
--- a/src/libraries/src.proj
+++ b/src/libraries/src.proj
@@ -2,6 +2,7 @@
BuildAllProjects=true
+ BuildWasmRuntimes
@@ -24,8 +25,11 @@
+
+
+ AfterTargets="Build"
+ DependsOnTargets="$(NativeBinPlaceDependsOnTargets)">
diff --git a/src/mono/wasm/Makefile b/src/mono/wasm/Makefile
index e652422d1aef3d..412ec94a18578b 100644
--- a/src/mono/wasm/Makefile
+++ b/src/mono/wasm/Makefile
@@ -10,7 +10,8 @@ BINDIR?=$(TOP)/artifacts/bin
OBJDIR?=$(TOP)/artifacts/obj
PINVOKE_TABLE?=$(TOP)/artifacts/obj/mono/Browser.wasm.$(CONFIG)/wasm/pinvoke-table.h
MONO_BIN_DIR?=$(BINDIR)/mono/Browser.wasm.$(CONFIG)
-SYS_NATIVE_DIR?=$(BINDIR)/native/net5.0-Browser-$(CONFIG)-wasm/
+SYS_NATIVE_DIR?=$(OBJDIR)/native/net5.0-Browser-$(CONFIG)-wasm/System.Native
+BUILDS_BIN_DIR?=$(BINDIR)/native/net5.0-Browser-$(CONFIG)-wasm/wasm/runtimes
all: build-native
@@ -44,7 +45,6 @@ emsdk_env.sh: | provision-wasm
MONO_OBJ_DIR=$(OBJDIR)/mono/Browser.wasm.$(CONFIG)
MONO_INCLUDE_DIR=$(MONO_BIN_DIR)/include/mono-2.0
-BUILDS_BIN_DIR=$(SYS_NATIVE_DIR)/wasm/runtimes
BUILDS_OBJ_DIR=$(MONO_OBJ_DIR)/wasm/runtimes
MONO_LIBS = \
$(MONO_BIN_DIR)/{libmono-ee-interp.a,libmonosgen-2.0.a,libmono-ilgen.a,libmono-icall-table.a} \
diff --git a/src/mono/wasm/wasm.proj b/src/mono/wasm/wasm.targets
similarity index 76%
rename from src/mono/wasm/wasm.proj
rename to src/mono/wasm/wasm.targets
index 4da46637398e56..0e088e5cb0751d 100644
--- a/src/mono/wasm/wasm.proj
+++ b/src/mono/wasm/wasm.targets
@@ -1,14 +1,10 @@
-
-
- $(NetCoreAppCurrent)
-
+
- $(MonoObjDir)wasm/pinvoke-table.h
- $(ArtifactsDir)bin\lib-runtime-packs\runtimes\browser-wasm\lib\$(NetCoreAppCurrent)
+ $(ArtifactsObjDir)wasm/pinvoke-table.h
@@ -29,7 +25,7 @@
-
+
-
+
diff --git a/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs b/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs
index e2b76bdf4ca110..5261f4c08b276a 100644
--- a/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs
+++ b/tools-local/tasks/mobile.tasks/WasmAppBuilder/WasmAppBuilder.cs
@@ -68,7 +68,7 @@ public override bool Execute () {
foreach (var assembly in Assemblies!.Values)
File.Copy (assembly.Location, Path.Join (AppDir, "managed", Path.GetFileName (assembly.Location)), true);
foreach (var f in new string [] { "dotnet.wasm", "dotnet.js" })
- File.Copy (Path.Join (RuntimePackDir, "native", "wasm", "release", f), Path.Join (AppDir, f), true);
+ File.Copy (Path.Join (RuntimePackDir, "native", "wasm", "runtimes", "release", f), Path.Join (AppDir, f), true);
File.Copy (MainJS!, Path.Join (AppDir, Path.GetFileName (MainJS!)), true);
using (var sw = File.CreateText (Path.Join (AppDir, "mono-config.js"))) {