From c83dc29f7da9734535b1c3ea906e8e8edf957bc0 Mon Sep 17 00:00:00 2001
From: NotAKidoS <37721153+NotAKidOnSteam@users.noreply.github.com>
Date: Wed, 26 Jul 2023 10:37:11 -0500
Subject: [PATCH] [NAK_CVR_Mods] Update for NetStandard2.1
---
Directory.Build.props | 300 ++++++++++++++++++++++++++++++++++------
copy_and_nstrip_dll.ps1 | 158 +++++++++++++++++++++
2 files changed, 414 insertions(+), 44 deletions(-)
create mode 100644 copy_and_nstrip_dll.ps1
diff --git a/Directory.Build.props b/Directory.Build.props
index 3a792e4..e4ac903 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -1,18 +1,14 @@
-
-
-
-
-
$(CVRPATH)\Mods\
latest
false
- net472
+ netstandard2.1
enable
false
+ false
true
@@ -34,23 +30,11 @@
4
-
-
-
- $(MsBuildThisFileDirectory)\.ManagedLibs\BTKUILib.dll
- False
-
-
- $(MsBuildThisFileDirectory)\.ManagedLibs\UIExpansionKit.dll
- False
-
-
- $(MsBuildThisFileDirectory)\.ManagedLibs\ChatBox.dll
- False
-
-
+
+
+
+
-
$(MsBuildThisFileDirectory)\.ManagedLibs\0Harmony.dll
@@ -76,10 +60,6 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Aura2_Core.dll
False
-
- $(MsBuildThisFileDirectory)\.ManagedLibs\AVProVideo.Demos.dll
- False
-
$(MsBuildThisFileDirectory)\.ManagedLibs\AVProVideo.Extensions.Timeline.dll
False
@@ -104,6 +84,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\AwesomeTechnologies.VegetationStudioPro.Runtime.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\BakeryRuntimeAssembly.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Bhaptics.Tact.dll
False
@@ -144,14 +128,6 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\DarkRift.dll
False
-
- $(MsBuildThisFileDirectory)\.ManagedLibs\DarkRift.Server.dll
- False
-
-
- $(MsBuildThisFileDirectory)\.ManagedLibs\DissonanceVoip.dll
- False
-
$(MsBuildThisFileDirectory)\.ManagedLibs\endel.nativewebsocket.dll
False
@@ -160,6 +136,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\ICSharpCode.SharpZipLib.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\LibVLCSharp.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\MagicaCloth.dll
False
@@ -192,8 +172,8 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\mscorlib.dll
False
-
- $(MsBuildThisFileDirectory)\.ManagedLibs\netstandard.dll
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\MTJobSystem.dll
False
@@ -208,18 +188,14 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Novell.Directory.Ldap.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Oculus.LipSync.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\PWCommon3DLL.dll
False
-
- $(MsBuildThisFileDirectory)\.ManagedLibs\QHierarchyNullable.dll
- False
-
-
- $(MsBuildThisFileDirectory)\.ManagedLibs\QHierarchyRuntime.dll
- False
-
$(MsBuildThisFileDirectory)\.ManagedLibs\SALSA-LipSync.dll
False
@@ -244,6 +220,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\SteamVR_Actions.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\System.Buffers.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\System.ComponentModel.Composition.dll
False
@@ -260,6 +240,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\System.Core.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\System.Data.DataSetExtensions.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\System.Data.dll
False
@@ -304,6 +288,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\System.IO.Compression.FileSystem.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\System.Memory.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\System.Net.Http.dll
False
@@ -412,6 +400,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UniTask.TextMeshPro.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.AI.Navigation.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Analytics.DataPrivacy.dll
False
@@ -420,6 +412,22 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Build.SlimPlayerRuntime.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Burst.Cecil.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Burst.Cecil.Mdb.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Burst.Cecil.Pdb.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Burst.Cecil.Rocks.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Burst.dll
False
@@ -432,6 +440,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Collections.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Collections.LowLevel.ILSupport.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Deformations.dll
False
@@ -444,10 +456,34 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Entities.Hybrid.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Entities.Hybrid.HybridComponents.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Entities.Hybrid.Tests.SeparateAssembly.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Entities.UI.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.InputSystem.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.InternalAPIEngineBridge.002.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.InternalAPIEngineBridge.003.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.InternalAPIEngineBridge.012.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Jobs.dll
False
@@ -464,6 +500,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Mathematics.Extensions.Hybrid.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.MemoryProfiler.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Platforms.Common.dll
False
@@ -476,6 +516,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Postprocessing.Runtime.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.ProBuilder.Csg.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.ProBuilder.dll
False
@@ -492,6 +536,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.ProBuilder.Stl.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Profiling.Core.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Properties.dll
False
@@ -516,6 +564,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.RenderPipelines.ShaderGraph.ShaderGraphLibrary.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Scenes.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Scenes.Hybrid.dll
False
@@ -528,6 +580,66 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Serialization.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Analytics.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Analytics.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Configuration.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Device.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Environments.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Environments.Internal.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Internal.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Networking.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Registration.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Scheduler.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Telemetry.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Core.Threading.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Services.Vivox.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.Subsystem.Registration.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.TextMeshPro.dll
False
@@ -548,6 +660,50 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Unity.VectorGraphics.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.Management.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.Oculus.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenVR.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.ConformanceAutomation.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.MetaQuestSupport.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.MockRuntime.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.OculusQuestSupport.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.PICOSupport.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXR.Features.RuntimeDebugger.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\Unity.XR.OpenXRPico.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.AccessibilityModule.dll
False
@@ -592,6 +748,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ClusterRendererModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ContentLoadModule.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.CoreModule.dll
False
@@ -616,6 +776,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.GameCenterModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.GIModule.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.GridModule.dll
False
@@ -652,6 +816,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.Monetization.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.NVIDIAModule.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ParticleSystemModule.dll
False
@@ -672,6 +840,14 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ProfilerModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.PropertiesModule.dll
+ False
+
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.RuntimeInitializeOnLoadManagerInitializerModule.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.ScreenCaptureModule.dll
False
@@ -680,6 +856,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.SharedInternalsModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.SpatialTracking.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.SpriteMaskModule.dll
False
@@ -708,10 +888,18 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TerrainPhysicsModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TextCoreFontEngineModule.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TextCoreModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TextCoreTextEngineModule.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.TextRenderingModule.dll
False
@@ -732,6 +920,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UIElementsModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UIElementsNativeModule.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UIModule.dll
False
@@ -744,6 +936,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UNETModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityAnalyticsCommonModule.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityAnalyticsModule.dll
False
@@ -752,6 +948,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityConnectModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityCurlModule.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.UnityTestProtocolModule.dll
False
@@ -788,6 +988,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.VideoModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.VirtualTexturingModule.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.VRModule.dll
False
@@ -796,6 +1000,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.WindModule.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.XR.LegacyInputHelpers.dll
+ False
+
$(MsBuildThisFileDirectory)\.ManagedLibs\UnityEngine.XRModule.dll
False
@@ -804,6 +1012,10 @@
$(MsBuildThisFileDirectory)\.ManagedLibs\Valve.Newtonsoft.Json.dll
False
+
+ $(MsBuildThisFileDirectory)\.ManagedLibs\VivoxUnity.dll
+ False
+
diff --git a/copy_and_nstrip_dll.ps1 b/copy_and_nstrip_dll.ps1
new file mode 100644
index 0000000..c52ccf1
--- /dev/null
+++ b/copy_and_nstrip_dll.ps1
@@ -0,0 +1,158 @@
+# CVR and Melon Loader Dependencies
+$0HarmonydllPath = "\MelonLoader\net35\0Harmony.dll"
+$melonLoaderdllPath = "\MelonLoader\net35\MelonLoader.dll"
+$CecilallPath = "\MelonLoader\net35\Mono.Cecil.dll"
+$cvrManagedDataPath = "\ChilloutVR_Data\Managed"
+
+$cvrPath = $env:CVRPATH
+$cvrExecutable = "ChilloutVR.exe"
+$cvrDefaultPath = "E:\temp\CVR_Experimental"
+
+# Array with the dlls to strip
+$dllsToStrip = @('Assembly-CSharp.dll','Assembly-CSharp-firstpass.dll','AVProVideo.Runtime.dll', 'Unity.TextMeshPro.dll', 'MagicaCloth.dll')
+
+# Array with the mods to grab
+$modNames = @("BTKUILib", "BTKSAImmersiveHud", "ActionMenu", "MenuScalePatch")
+
+# Array with dlls to ignore from ManagedLibs
+$cvrManagedLibNamesToIgnore = @("netstandard")
+
+if ($cvrPath -and (Test-Path "$cvrPath\$cvrExecutable")) {
+ # Found ChilloutVR.exe in the existing CVRPATH
+ Write-Host ""
+ Write-Host "Found the ChilloutVR folder on: $cvrPath"
+}
+else {
+ # Check if ChilloutVR.exe exists in default Steam location
+ if (Test-Path "$cvrDefaultPath\$cvrExecutable") {
+ # Set CVRPATH environment variable to default Steam location
+ Write-Host "Found the ChilloutVR on the default steam location, setting the CVRPATH Env Var at User Level!"
+ [Environment]::SetEnvironmentVariable("CVRPATH", $cvrDefaultPath, "User")
+ $env:CVRPATH = $cvrDefaultPath
+ $cvrPath = $env:CVRPATH
+ }
+ else {
+ Write-Host "[ERROR] ChilloutVR.exe not found in CVRPATH or the default Steam location."
+ Write-Host " Please define the Environment Variable CVRPATH pointing to the ChilloutVR folder!"
+ return
+ }
+}
+
+$scriptDir = Split-Path -Parent -Path $MyInvocation.MyCommand.Definition
+$managedLibsFolder = $scriptDir + "\.ManagedLibs"
+
+if (!(Test-Path $managedLibsFolder)) {
+ New-Item -ItemType Directory -Path $managedLibsFolder
+ Write-Host ".ManagedLibs folder created successfully."
+}
+
+Write-Host ""
+Write-Host "Copying the DLLs from the CVR, MelonLoader, and Mods folder to the .ManagedLibs"
+
+
+Copy-Item $cvrPath$0HarmonydllPath -Destination $managedLibsFolder
+Copy-Item $cvrPath$melonLoaderdllPath -Destination $managedLibsFolder
+Copy-Item $cvrPath$CecilallPath -Destination $managedLibsFolder
+Copy-Item $cvrPath$cvrManagedDataPath"\*" -Destination $managedLibsFolder
+
+
+# Saving XML ready libs for the Build.props file
+$lib_names_xml = ""
+$lib_names_xml += '$(MsBuildThisFileDirectory)\.ManagedLibs\0Harmony.dllFalse'
+$lib_names_xml += '$(MsBuildThisFileDirectory)\.ManagedLibs\MelonLoader.dllFalse'
+foreach ($file in Get-ChildItem $cvrPath$cvrManagedDataPath"\*") {
+ if($cvrManagedLibNamesToIgnore -notcontains $file.BaseName) {
+ $lib_names_xml += "`$(MsBuildThisFileDirectory)\.ManagedLibs\$($file.BaseName).dllFalse"
+ }
+}
+$lib_names_xml += ""
+$lib_names_xml | Out-File -Encoding UTF8 -FilePath lib_names.xml
+
+
+
+# Third Party Dependencies
+$melonModsPath="\Mods\"
+$missingMods = New-Object System.Collections.Generic.List[string]
+
+
+foreach ($modName in $modNames) {
+ $modDll = $modName + ".dll"
+ $modPath = $cvrPath + $melonModsPath + $modDll
+ $managedLibsModPath = "$managedLibsFolder\$modDll"
+
+ # Attempt to grab from the mods folder
+ if (Test-Path $modPath -PathType Leaf) {
+ Write-Host " Copying $modDll from $melonModsPath to \.ManagedLibs!"
+ Copy-Item $modPath -Destination $managedLibsFolder
+ }
+ # Check if they already exist in the .ManagedLibs
+ elseif (Test-Path $managedLibsModPath -PathType Leaf) {
+ Write-Host " Ignoring $modDll since already exists in \.ManagedLibs!"
+ }
+ # If we fail, lets add to the missing mods list
+ else {
+ $missingMods.Add($modName)
+ }
+}
+
+if ($missingMods.Count -gt 0) {
+ # If we have missing mods, let's fetch them from the latest CVR Modding Group API
+ Write-Host ""
+ Write-Host "Failed to find $($missingMods.Count) mods. We're going to search in CVR MG verified mods" -ForegroundColor Red
+ Write-Host "You can download them and move to $managedLibsFolder"
+
+ $cvrModdingApiUrl = "https://api.cvrmg.com/v1/mods"
+ $cvrModdingDownloadUrl = "https://api.cvrmg.com/v1/mods/download/"
+ $latestModsResponse = Invoke-RestMethod $cvrModdingApiUrl -UseBasicParsing
+
+ foreach ($modName in $missingMods) {
+ $mod = $latestModsResponse | Where-Object { $_.name -eq $modName }
+ if ($mod) {
+ $modDownloadUrl = $cvrModdingDownloadUrl + $($mod._id)
+ # It seems power shell doesn't like to download .dll from https://api.cvrmg.com (messes with some anti-virus)
+ # Invoke-WebRequest -Uri $modDownloadUrl -OutFile $managedLibsFolder -UseBasicParsing
+ # Write-Host " $modName was downloaded successfully to $managedLibsFolder!"
+ Write-Host " $modName Download Url: $modDownloadUrl"
+ } else {
+ Write-Host " $modName was not found in the CVR Modding Group verified mods!"
+ }
+ }
+}
+
+
+Write-Host ""
+Write-Host "Copied all libraries!"
+Write-Host ""
+Write-Host "Press any key to strip the Dlls using NStrip"
+$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL
+$HOST.UI.RawUI.Flushinputbuffer()
+
+Write-Host "NStrip Convert all private/protected stuff to public. Requires true>"
+
+# Check if NStrip.exe exists in the current directory
+if(Test-Path -Path ".\NStrip.exe") {
+ $nStripPath = ".\NStrip.exe"
+}
+else {
+ # Try to locate NStrip.exe in the PATH
+ $nStripPath = Get-Command -Name NStrip.exe -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Source
+ if($nStripPath -eq $null) {
+ # Display an error message if NStrip.exe could not be found
+ Write-Host "Could not find NStrip.exe in the current directory nor in the PATH." -ForegroundColor Red
+ Write-Host "Visit https://github.com/bbepis/NStrip/releases/latest to grab a copy." -ForegroundColor Red
+ return
+ }
+}
+
+# Loop through each DLL file to strip and call NStrip.exe
+foreach($dllFile in $dllsToStrip) {
+ $dllPath = Join-Path -Path $managedLibsFolder -ChildPath $dllFile
+ & $nStripPath -p -n $dllPath $dllPath
+}
+
+Write-Host ""
+Write-Host "Copied all libraries and stripped the DLLs!"
+Write-Host ""
+Write-Host "Press any key to exit"
+$HOST.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | OUT-NULL
+$HOST.UI.RawUI.Flushinputbuffer()