Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
de10cab
No longer use visual studio for windows build, instead use latest dotnet
imalcolm1 Apr 27, 2026
9fde141
Removed an old echo statement
imalcolm1 Apr 27, 2026
d19edb6
Update net build target
imalcolm1 Apr 27, 2026
e60456f
Make use of installed dotnet wherever possible
imalcolm1 Apr 28, 2026
fb34c9f
Better copy target
imalcolm1 Apr 28, 2026
804f066
Remove WPF WAP builds until we can fix them
imalcolm1 Apr 28, 2026
9535f57
RELEASE_VERSION default is now 300.1.0
imalcolm1 Apr 28, 2026
adaa427
Set default dotnet version and install maui workloads
imalcolm1 Apr 28, 2026
fc3d69c
Copy WPF exes to output folder
imalcolm1 Apr 28, 2026
179fdb4
Support for caching the nuget installation
imalcolm1 Apr 28, 2026
261fa22
Deleted empty file
imalcolm1 Apr 29, 2026
2930ec7
Added diagnostic verbosity to msbuild command to help troubleshoot
imalcolm1 Apr 29, 2026
46aeb7b
Escape quotes on PUBLISHER property to fix spaces in the PUBLISHER va…
imalcolm1 Apr 29, 2026
8098806
Switched quotes
imalcolm1 Apr 29, 2026
f4e6d68
Trying something else
imalcolm1 Apr 29, 2026
aefc9c7
Trying something else else
imalcolm1 Apr 29, 2026
2fb07ef
Trying removing PUBLISHER as a parameter
imalcolm1 Apr 30, 2026
a1e7503
Deal with escaped quotes
imalcolm1 Apr 30, 2026
1e1c3c2
Mess with msbuild logging outputs
imalcolm1 Apr 30, 2026
25c060e
TO REVERT: Frankenbuild for logs
imalcolm1 Apr 30, 2026
39b62a8
TO REVERT: More logs hopefully
imalcolm1 Apr 30, 2026
97cfeaf
Even more logs
imalcolm1 Apr 30, 2026
5634289
Revert "TO REVERT: Frankenbuild for logs"
imalcolm1 Apr 30, 2026
5f9190c
Fix WPF files not being copied
imalcolm1 Apr 30, 2026
ecf3f26
Clean up unnecessary properties
imalcolm1 Apr 30, 2026
feca29d
Remove detailed verbosity
imalcolm1 Apr 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 14 additions & 10 deletions tools/GenerateApps.msbuild
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<PropertyGroup>
<_NetFrameworkTarget>net472</_NetFrameworkTarget>
<_NetWindowsTarget>net8.0-windows10.0.19041.0</_NetWindowsTarget>
<_NetWindowsMauiTarget>net9.0-windows10.0.19041.0</_NetWindowsMauiTarget>
<_NetAndroidTarget>net9.0-android</_NetAndroidTarget>
<_NetMauiVersion>net10.0</_NetMauiVersion>
<_NetWindowsMauiTarget>$(_NetMauiVersion)-windows10.0.19041.0</_NetWindowsMauiTarget>
<_NetAndroidTarget>$(_NetMauiVersion)-android</_NetAndroidTarget>
<Configuration Condition="'$(Configuration)'==''">Release</Configuration>
<RELEASE_VERSION Condition="'$(RELEASE_VERSION)'==''">300.0.0</RELEASE_VERSION>
<BUILD_NUM Condition="'$(BUILD_NUM)'==''">0</BUILD_NUM>
Expand Down Expand Up @@ -39,11 +39,15 @@
Value="$(PUBLISHER)" Query="/dn:Package/dn:Identity/@Publisher" Namespaces="$(AppManifestNamespace)"/>

<MSBuild Projects="@(WPFProject)" Targets="Build" Properties="Configuration=$(Configuration);TargetFramework=$(_NetWindowsTarget);Platform=x64" />
<MSBuild Projects="@(WPFWAPProject)" Targets="Restore" Properties="Configuration=$(Configuration);ArcGISMapsSDKVersion=$(ArcGISMapsSDKVersion)" />
Copy link
Copy Markdown
Collaborator Author

@imalcolm1 imalcolm1 Apr 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we are moving away from using Visual Studio for the builds, we are going to need to find another way to package the WPF viewer as a store build. For now we're removing the WAP builds, and will make an internal issue to fix this before the next release. We can always build the store package manually

<MSBuild Projects="@(WPFWAPProject)" Targets="Build" Properties="Configuration=$(Configuration);Platform=x64;PackageCertificateKeyFile=$(PFXSignatureFile);PackageCertificatePassword=$(PFXSignaturePassword);PackageCertificateThumbprint=$(PackageCertificateThumbprint)" />
<ZipDirectory SourceDirectory="$(MSBuildThisFileDirectory)..\src\WPF\WPF.Viewer\bin\x64\Release\$(_NetWindowsTarget)" DestinationFile="$(MSBuildThisFileDirectory)..\output\WPF_$(_NetWindowsTarget)_$(Configuration)_x64.zip" Overwrite="true" />
<MSBuild Projects="@(WPFWAPProject)" Targets="Build" Properties="Configuration=$(Configuration);Platform=arm64;PackageCertificateKeyFile=$(PFXSignatureFile);PackageCertificatePassword=$(PFXSignaturePassword);PackageCertificateThumbprint=$(PackageCertificateThumbprint)" />
<ZipDirectory SourceDirectory="$(MSBuildThisFileDirectory)..\src\WPF\WPF.Viewer\bin\ARM64\Release\$(_NetWindowsTarget)" DestinationFile="$(MSBuildThisFileDirectory)..\output\WPF_$(_NetWindowsTarget)_$(Configuration)_ARM64.zip" Overwrite="true" />
<MSBuild Projects="@(WPFProject)" Targets="Build" Properties="Configuration=$(Configuration);TargetFramework=$(_NetWindowsTarget);Platform=arm64" />

<ItemGroup>
<_WpfX64Files Include="$(MSBuildThisFileDirectory)..\src\WPF\WPF.Viewer\bin\x64\Release\$(_NetWindowsTarget)\**\*.*" />
<_WpfArm64Files Include="$(MSBuildThisFileDirectory)..\src\WPF\WPF.Viewer\bin\arm64\Release\$(_NetWindowsTarget)\**\*.*" />
</ItemGroup>

<Copy SourceFiles="@(_WpfArm64Files)" DestinationFolder="$(MSBuildThisFileDirectory)..\output\WPF\%(RecursiveDir)\" />
<Copy SourceFiles="@(_WpfX64Files)" DestinationFolder="$(MSBuildThisFileDirectory)..\output\WPF\%(RecursiveDir)" />
</Target>

<Target Name="BuildWinUI" DependsOnTargets="CreateOutputDirectory">
Expand All @@ -64,9 +68,9 @@
<MSBuild Projects="@(MAUIProject)" Targets="Publish" Properties="Configuration=$(Configuration);TargetFramework=$(_NetWindowsMauiTarget);RuntimeIdentifier=win-arm64;ApplicationDisplayVersion=$(RELEASE_VERSION);ApplicationVersion=$(BUILD_NUM);PackageCertificateKeyFile=$(PFXSignatureFile);PackageCertificatePassword=$(PFXSignaturePassword)" />
<MSBuild Projects="@(MAUIProject)" Targets="Publish" Properties="Configuration=$(Configuration);TargetFramework=$(_NetAndroidTarget);ApplicationDisplayVersion=$(RELEASE_VERSION);ApplicationVersion=$(BUILD_NUM);AndroidKeyStore=true;AndroidSigningKeyStore=$(KeyStoreFile);AndroidSigningKeyPass=$(KeyPass);AndroidSigningStorePass=$(KeyPass);AndroidSigningKeyAlias=$(KeyAlias)" />

<Copy SourceFiles="$(MSBuildThisFileDirectory)..\src\MAUI\Maui.Samples\bin\Release\net9.0-android\com.esri.arcgisruntime.samples.maui-Signed.apk"
<Copy SourceFiles="$(MSBuildThisFileDirectory)..\src\MAUI\Maui.Samples\bin\Release\$(_NetAndroidTarget)\com.esri.arcgisruntime.samples.maui-Signed.apk"
DestinationFolder="$(MSBuildThisFileDirectory)..\output\" />
<Copy SourceFiles="$(MSBuildThisFileDirectory)..\src\MAUI\Maui.Samples\bin\Release\net9.0-android\com.esri.arcgisruntime.samples.maui-Signed.aab"
<Copy SourceFiles="$(MSBuildThisFileDirectory)..\src\MAUI\Maui.Samples\bin\Release\$(_NetAndroidTarget)\com.esri.arcgisruntime.samples.maui-Signed.aab"
DestinationFolder="$(MSBuildThisFileDirectory)..\output\" />
</Target>

Expand Down
42 changes: 26 additions & 16 deletions tools/cibuild.cmd
Original file line number Diff line number Diff line change
@@ -1,30 +1,41 @@
REM @ECHO OFF
ECHO SEARCHING FOR VISUAL STUDIO...
"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -prerelease -version [17.8,18.0) -sort -requires Microsoft.Component.MSBuild -products * -property InstallationPath > %TEMP%\vsinstalldir.txt
SET /p _VSINSTALLDIR=<%TEMP%\vsinstalldir.txt
DEL %TEMP%\vsinstalldir.txt
IF "%_VSINSTALLDIR%"=="" (
ECHO ERROR: VISUAL STUDIO NOT FOUND
EXIT /B 1

REM Default environment variables
IF "%DOTNET_VERSION%" == "" (
set DOTNET_VERSION=10.0.203
)
IF "%VSINSTALLDIR%"=="" (
CALL "%_VSINSTALLDIR%\Common7\Tools\VsDevCmd.bat"
IF "%RELEASE_VERSION%" == "" (
SET RELEASE_VERSION=300.1.0
)

IF "%RELEASE_VERSION%" == "" (
SET RELEASE_VERSION=300.0.0
REM Install the latest dotnet version if not already cached to the build machine
if "%DOTNET_CACHE_FOLDER%" == "" (
set DOTNET_INSTALL_FOLDER=%WORKSPACE%\.dotnet
) ELSE (
set DOTNET_INSTALL_FOLDER=%DOTNET_CACHE_FOLDER%\%DOTNET_VERSION%
)

if NOT EXIST "%DOTNET_INSTALL_FOLDER%\dotnet.exe" (
curl -L https://dot.net/v1/dotnet-install.ps1 -o %WORKSPACE%\dotnet-install.ps1
powershell -File %WORKSPACE%\dotnet-install.ps1 -version %DOTNET_VERSION% -InstallDir %DOTNET_INSTALL_FOLDER%
)

SET DOTNET_EXE=%DOTNET_INSTALL_FOLDER%\dotnet.exe
ECHO Installed dotnet at %DOTNET_EXE%

REM Configure NuGet
dotnet new nugetconfig --force -o ../
%DOTNET_EXE% new nugetconfig --force -o ../
IF "%NUGET_REPO%" NEQ "" IF EXIST "%NUGET_REPO%" (
dotnet nuget add source %NUGET_REPO%
%DOTNET_EXE% nuget add source %NUGET_REPO%
)
SET NUGET_PACKAGES=%~dp0..\.nuget\packages
SET NUGET_HTTP_CACHE_PATH=%~dp0..\.nuget\cache
md %NUGET_PACKAGES%
md %NUGET_HTTP_CACHE_PATH%

REM Install maui workload
%DOTNET_EXE% workload install maui --version %DOTNET_VERSION%

SET licenseFile=%~dp0..\src\Samples.Shared\Managers\LicenseStrings.generated.cs
IF "%ArcGISLicenseKey%" NEQ "" (
REM Override LicenseKeys if available
Expand Down Expand Up @@ -54,6 +65,5 @@ IF "%ARCGIS_API_KEY%" NEQ "" (
ECHO ^}^}^} >>%keyFile%
)


msbuild /t:BuildAll %~dp0GenerateApps.msbuild /p:BUILD_NUM=%BUILD_NUM% /p:RELEASE_VERSION=%RELEASE_VERSION% /p:PUBLISHER="%PUBLISHER%" /p:PFXSignaturePassword=%PFXSignaturePassword% /p:PFXSignatureFile=%PFXSignatureFile% /p:PackageCertificateThumbprint=%PackageCertificateThumbprint% /p:KeyStoreFile=%KeyStoreFile% /p:KeyPass=%KeyPass% /p:KeyAlias=%KeyAlias%

set PUBLISHER=%PUBLISHER:\"="%
%DOTNET_EXE% msbuild %~dp0GenerateApps.msbuild -t:BuildAll -p:BUILD_NUM=%BUILD_NUM% -p:RELEASE_VERSION=%RELEASE_VERSION% -p:PFXSignaturePassword=%PFXSignaturePassword% -p:PFXSignatureFile=%PFXSignatureFile% -p:PackageCertificateThumbprint=%PackageCertificateThumbprint% -p:KeyStoreFile=%KeyStoreFile% -p:KeyPass=%KeyPass% -p:KeyAlias=%KeyAlias%
Loading