Skip to content

Commit 98e0ca3

Browse files
DISMTools 0.6 Update 1 (#213)
* Update assembly information * [Library] Update Markdig and ManagedDism * [Fix] Fallback to INI method for installable copies Fixes #205 * [Fix] Fixed background processes not starting sometimes * [DynaLog] Improve file write speed * [Event] Reload BGProcs with Alt+R * [Event] Update key combo for BGProc reload * [Unattended answer file] Improve application task speed * [Fix] Fixed #206 * [Fix] Fixed possible API exceptions * [PE Helper] Introducing HotInstall * [PE Helper] Add BCD entry deletion for BIOS * [PE Helper] Update files - Updated the text of the restart dialog to make it consistent with HotInstall - Updated HotInstall to latest commit: CodingWonders/DT-HotInstall@1528686 * [Fix] Fixed #209 * [PE Helper] Update files (01/05/2025) - Updated HotInstall to its latest commit: CodingWonders/DT-HotInstall@498f729 NOTE: this version of HotInstall is marked as a test build * [PE Helper] Update HotInstall (01/06/2025) - Updated HotInstall to its latest commit: CodingWonders/DT-HotInstall@6addb6b * [PE Helper] Update HotInstall (01/08/2025) - Updated HotInstall to its latest commit: CodingWonders/DT-HotInstall@6b374f2 * [PE Helper] Update HotInstall (01/09/2025) - Updated HotInstall to its latest commit: CodingWonders/DT-HotInstall@b5b2692 * [PE Helper] Update HotInstall (01/10/2025) - Updated HotInstall to its latest commit: CodingWonders/DT-HotInstall@32bd695 * [Fix] Fixed exception for Recents list keyboard combos * [PE Helper] Update HotInstall (01/13/2025) - Updated HotInstall to its latest commit: CodingWonders/DT-HotInstall@e31674e * [PE Helper] Update HotInstall (01/14/2025) - Updated HotInstall to its latest commit: CodingWonders/DT-HotInstall@dee52b1 * [PE Helper] Update HotInstall (01/15/2025) - Updated HotInstall to its latest commit: CodingWonders/DT-HotInstall@61c1be5 * [Library] Update Scintilla.NET to 5.6.5 * [Library] Update Markdig to 0.40.0 * [PE Helper] Update copyright date * [Fix] Detect WIMBoot status and disable option accordingly * [PE Helper] Add ability to get a bit more info * [PE Helper] Update HotInstall (01/22/2025) Updated HotInstall to no longer feature test build mark * [REL] Update What's New section and Update Info files
1 parent f2f1bbd commit 98e0ca3

File tree

67 files changed

+11101
-444
lines changed

Some content is hidden

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

67 files changed

+11101
-444
lines changed

DISMTools.vbproj

+10-7
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,11 @@
7777
<Reference Include="DarkUI, Version=2.0.1.0, Culture=neutral, processorArchitecture=MSIL">
7878
<HintPath>packages\DarkUI.2.0.2\lib\DarkUI.dll</HintPath>
7979
</Reference>
80-
<Reference Include="Markdig, Version=0.38.0.0, Culture=neutral, processorArchitecture=MSIL">
81-
<HintPath>packages\Markdig.0.38.0\lib\net462\Markdig.dll</HintPath>
80+
<Reference Include="Markdig, Version=0.40.0.0, Culture=neutral, processorArchitecture=MSIL">
81+
<HintPath>packages\Markdig.0.40.0\lib\net462\Markdig.dll</HintPath>
8282
</Reference>
8383
<Reference Include="Microsoft.Dism, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5bba90053b345501, processorArchitecture=MSIL">
84-
<HintPath>packages\Microsoft.Dism.3.2.0\lib\net40\Microsoft.Dism.dll</HintPath>
84+
<HintPath>packages\Microsoft.Dism.3.3.0\lib\net40\Microsoft.Dism.dll</HintPath>
8585
</Reference>
8686
<Reference Include="Microsoft.WindowsAPICodePack.Core, Version=8.0.6.0, Culture=neutral, PublicKeyToken=8afb38e9204fc0a9, processorArchitecture=MSIL">
8787
<HintPath>packages\WindowsAPICodePack.8.0.6\lib\net48\Microsoft.WindowsAPICodePack.Core.dll</HintPath>
@@ -104,8 +104,8 @@
104104
<Reference Include="PresentationFramework">
105105
<Private>True</Private>
106106
</Reference>
107-
<Reference Include="Scintilla.NET, Version=5.6.4.0, Culture=neutral, PublicKeyToken=0221e70ba618311e, processorArchitecture=MSIL">
108-
<HintPath>packages\Scintilla5.NET.5.6.4\lib\net462\Scintilla.NET.dll</HintPath>
107+
<Reference Include="Scintilla.NET, Version=5.6.5.0, Culture=neutral, PublicKeyToken=0221e70ba618311e, processorArchitecture=MSIL">
108+
<HintPath>packages\Scintilla5.NET.5.6.5\lib\net462\Scintilla.NET.dll</HintPath>
109109
</Reference>
110110
<Reference Include="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
111111
<Private>True</Private>
@@ -1210,6 +1210,9 @@
12101210
<None Include="Helpers\extps1\PE_Helper\files\DISMTools-PE.zip">
12111211
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
12121212
</None>
1213+
<None Include="Helpers\extps1\PE_Helper\files\HotInstall.zip">
1214+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
1215+
</None>
12131216
<None Include="Helpers\extps1\PE_Helper\files\startup\StartInstall.ps1">
12141217
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
12151218
</None>
@@ -1988,12 +1991,12 @@ IF EXIST tools (
19881991

19891992
IF EXIST "report.html" (del "report.html")</PreBuildEvent>
19901993
</PropertyGroup>
1991-
<Import Project="packages\Scintilla5.NET.5.6.4\build\scintilla5.net.targets" Condition="Exists('packages\Scintilla5.NET.5.6.4\build\scintilla5.net.targets')" />
1994+
<Import Project="packages\Scintilla5.NET.5.6.5\build\scintilla5.net.targets" Condition="Exists('packages\Scintilla5.NET.5.6.5\build\scintilla5.net.targets')" />
19921995
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
19931996
<PropertyGroup>
19941997
<ErrorText>Este proyecto hace referencia a los paquetes NuGet que faltan en este equipo. Use la restauración de paquetes NuGet para descargarlos. Para obtener más información, consulte http://go.microsoft.com/fwlink/?LinkID=322105. El archivo que falta es {0}.</ErrorText>
19951998
</PropertyGroup>
1996-
<Error Condition="!Exists('packages\Scintilla5.NET.5.6.4\build\scintilla5.net.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Scintilla5.NET.5.6.4\build\scintilla5.net.targets'))" />
1999+
<Error Condition="!Exists('packages\Scintilla5.NET.5.6.5\build\scintilla5.net.targets')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Scintilla5.NET.5.6.5\build\scintilla5.net.targets'))" />
19972000
</Target>
19982001
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
19992002
Other similar extension points exist, see Microsoft.Common.targets.

Helpers/extps1/PE_Helper/PE_Helper.ps1

+69-7
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# '`""""""`. """""""""^ `,,," ---------------------------------------------------------
99
# '^"""""`. ^""""""""""'. .`,,,,,^ | Preinstallation Environment (PE) helper |
1010
# .^"""""`. ."""""""",,,,,,,,,,,,,,,. ---------------------------------------------------------
11-
# .^"""""^. .`",,"""",,,,,,,,,,,,,,,,' | (C) 2024 CodingWonders Software |
11+
# .^"""""^. .`",,"""",,,,,,,,,,,,,,,,' | (C) 2024-2025 CodingWonders Software |
1212
# .^"""""^. '`^^"",:,,,,,,,,,,,,,,,,,". ---------------------------------------------------------
1313
# .^"""""^.`+]>,^^"",,:,,,,,,,,,,,,,`.
1414
# .^""";_]]]?)}:^^""",,,`'````'..
@@ -72,7 +72,7 @@ function Start-PEGeneration
7272
$architecture = [PE_Arch]::($arch)
7373
$version = "0.6"
7474
Write-Host "DISMTools $version - Preinstallation Environment Helper"
75-
Write-Host "(c) 2024. CodingWonders Software"
75+
Write-Host "(c) 2024-2025. CodingWonders Software"
7676
Write-Host "-----------------------------------------------------------"
7777
# Start PE generation
7878
Write-Host "Starting PE generation..."
@@ -205,6 +205,19 @@ function Start-PEGeneration
205205
{
206206
Write-Host "Temporary files haven't been deleted successfully"
207207
}
208+
# Detect if HotInstall is present in the working directory and copy it to the ISO file
209+
if (Test-Path -Path "$((Get-Location).Path)\files\HotInstall.zip" -PathType Leaf) {
210+
Write-Host "HotInstall has been detected. Adding to ISO file to allow installations from full Windows environments..."
211+
Expand-Archive -Path "$((Get-Location).Path)\files\HotInstall.zip" -Destination "$((Get-Location).Path)\ISOTEMP\media" -Force -ErrorAction SilentlyContinue
212+
if ($?)
213+
{
214+
Write-Host "HotInstall has been copied successfully."
215+
}
216+
else
217+
{
218+
Write-Host "HotInstall could not be copied."
219+
}
220+
}
208221
Write-Host "The ISO file structure has been successfully created. DISMTools will continue creating the ISO file automatically after 5 seconds."
209222
Start-Sleep -Seconds 5
210223
Write-Host "Creating ISO file..."
@@ -894,7 +907,11 @@ function Get-Disks
894907
}
895908

896909
# Show additional tools
897-
Write-Host "- To load drivers, type `"DIM`" and press ENTER`n"
910+
Write-Host "- To load drivers, type `"DIM`" and press ENTER"
911+
if (Test-Path -Path "$([IO.Path]::GetPathRoot([Environment]::GetFolderPath([Environment+SpecialFolder]::Windows)))HotInstall\DSCReport.txt" -PathType Leaf) {
912+
Write-Host "- To get a look at what disks are applicable for operating system installation, type DSCR"
913+
}
914+
Write-Host ""
898915

899916
$destDisk = Read-Host -Prompt "Please choose the disk to apply the image to"
900917
$destDrive = -1
@@ -925,6 +942,15 @@ function Get-Disks
925942
}
926943
Get-Disks
927944
}
945+
"DSCR" {
946+
if (Test-Path -Path "$([IO.Path]::GetPathRoot([Environment]::GetFolderPath([Environment+SpecialFolder]::Windows)))HotInstall\DSCReport.txt" -PathType Leaf) {
947+
notepad X:\HotInstall\DSCReport.txt
948+
} else {
949+
Write-Host "Either no report has been created or the installation has not been started with HotInstall."
950+
Start-Sleep -Seconds 3
951+
}
952+
Get-Disks
953+
}
928954
default {
929955
Write-Host "Please specify a number and try again.`n"
930956
Get-Disks
@@ -1109,6 +1135,7 @@ function Get-WimIndexes
11091135
$wimPath = "$((Get-Location).Path)sources\install.wim"
11101136
}
11111137
(Get-WindowsImage -ImagePath "$wimPath" | Format-Table ImageIndex, ImageName) | Out-Host
1138+
Write-Host "To get more complete information about the Windows image, type `"INFO`"`n"
11121139
$idx = Read-Host -Prompt "Specify the image index to apply"
11131140
try
11141141
{
@@ -1119,8 +1146,27 @@ function Get-WimIndexes
11191146
}
11201147
catch
11211148
{
1122-
Write-Host "Please specify an index and try again.`n"
1123-
Get-WimIndexes
1149+
if ($idx -eq "INFO") {
1150+
# Get the information, save it to a text file, and go back to the choices
1151+
# We could have used a more visual way, but I fear that it won't be supported by the WinPE .NET Framework
1152+
try
1153+
{
1154+
(Get-WindowsImage -ImagePath "$wimPath") | Out-File "X:\imageinfo.txt" -Force -Encoding UTF8
1155+
if (Test-Path "X:\imageinfo.txt" -PathType Leaf)
1156+
{
1157+
notepad "X:\imageinfo.txt"
1158+
}
1159+
Get-WimIndexes
1160+
}
1161+
catch
1162+
{
1163+
Write-Host "Could not get additional information."
1164+
Get-WimIndexes
1165+
}
1166+
} else {
1167+
Write-Host "Please specify an index and try again.`n"
1168+
Get-WimIndexes
1169+
}
11241170
}
11251171
}
11261172

@@ -1447,6 +1493,14 @@ function New-BootFiles
14471493
diskpart /s "X:\files\diskpart\dp_bootassign.dp" | Out-Host
14481494
}
14491495
}
1496+
1497+
if (Test-Path -Path "X:\HotInstall\BcdEntry" -PathType Leaf) {
1498+
Write-Host "Deleting BCD entry..."
1499+
$entryGuid = Get-Content -Path "X:\HotInstall\BcdEntry"
1500+
if ($entryGuid -ne "") {
1501+
bcdedit /delete $entryGuid | Out-Host
1502+
}
1503+
}
14501504
}
14511505
bcdboot "$($drLetter):\Windows" /s "W:" /f ALL
14521506
}
@@ -1478,6 +1532,14 @@ function New-BootFiles
14781532
diskpart /s "X:\files\diskpart\dp_bootassign.dp" | Out-Host
14791533
}
14801534
}
1535+
1536+
if (Test-Path -Path "X:\HotInstall\BcdEntry" -PathType Leaf) {
1537+
Write-Host "Deleting BCD entry..."
1538+
$entryGuid = Get-Content -Path "X:\HotInstall\BcdEntry"
1539+
if ($entryGuid -ne "") {
1540+
bcdedit /delete $entryGuid | Out-Host
1541+
}
1542+
}
14811543
}
14821544
bootsect /nt60 W:
14831545
bootsect /nt60 W: /mbr
@@ -1518,7 +1580,7 @@ function Start-ProjectDevelopment {
15181580
$version = "0.6"
15191581
$ESVer = "0.6"
15201582
Write-Host "DISMTools $version - Preinstallation Environment Helper"
1521-
Write-Host "(c) 2024. CodingWonders Software"
1583+
Write-Host "(c) 2024-2025. CodingWonders Software"
15221584
Write-Host "-----------------------------------------------------------"
15231585
# Start PE generation
15241586
Write-Host "Starting project creation... (Extensibility Suite version $ESVer)"
@@ -1725,7 +1787,7 @@ elseif ($cmd -eq "Help")
17251787
{
17261788
# Show help documentation
17271789
Write-Host "DISMTools - Preinstallation Environment Helper"
1728-
Write-Host "(c) 2024. CodingWonders Software"
1790+
Write-Host "(c) 2024-2025. CodingWonders Software"
17291791
Write-Host "-----------------------------------------------------------`n"
17301792

17311793
Write-Host "Usage: PE_Helper.ps1 {-cmd} [StartPEGen -arch <arch> -imgFile <imgFile> -isoPath <isoPath>] [StartApply] [StartDevelopment -testArch <arch> -targetPath <targetPath>] [Help]`n"
5.8 MB
Binary file not shown.

Helpers/extps1/PE_Helper/files/startup/startnet.cmd

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set version=0.6
55
set sysdrive=%SYSTEMDRIVE%
66
set debug=0
77
echo DISMTools %version% - Preinstallation Environment
8-
echo (c) 2024. CodingWonders Software
8+
echo (c) 2024-2025. CodingWonders Software
99
echo.
1010
echo Please wait while the environment starts up...
1111
wpeinit
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)