- DbBase.FindRequired / Client.FindByNameRequired now throw the domain-specific ObjectNotFoundException (NHibernate lineage; Rails equivalent: ActiveRecord::RecordNotFound) on a lookup miss; the no-context case stays InvalidOperationException (configuration error) - Console demo catches the new type; tests (18)/(21) assert it, (19)/(23) keep InvalidOperationException with rationale comments - scripts/run-console.sh delegates to dotnet.sh; run-console.ps1 is the Windows/PowerShell counterpart (mise-first, repo-root cd) Yak: objectnotfoundexception-run-console-wrappers-3p8b
40 lines
1.2 KiB
PowerShell
40 lines
1.2 KiB
PowerShell
# Run the Before.Console demo app (src/Before.Console/Program.cs) on Windows.
|
|
#
|
|
# Windows counterpart of scripts/run-console.sh:
|
|
# - runs from the repo root, like the other scripts
|
|
# - prefers mise (see mise.toml) and falls back to a dotnet on PATH
|
|
#
|
|
# Troubleshooting: if dotnet fails with "The user's home directory could not
|
|
# be determined" (some sandboxed shells), set DOTNET_CLI_HOME first:
|
|
# PS> $env:DOTNET_CLI_HOME = "$PWD\.dotnet-cli"
|
|
#
|
|
# Usage (from anywhere):
|
|
# PS> .\scripts\run-console.ps1 # no args
|
|
# PS> .\scripts\run-console.ps1 --verbose # args go to the program
|
|
# The script inserts the `--` separator for dotnet run itself.
|
|
#
|
|
# If script execution is blocked by policy:
|
|
# PS> powershell -ExecutionPolicy Bypass -File .\scripts\run-console.ps1
|
|
$ErrorActionPreference = 'Stop'
|
|
|
|
$repoRoot = Split-Path -Parent $PSScriptRoot
|
|
Push-Location $repoRoot
|
|
try {
|
|
$dotnetArgs = @('run', '--project', 'src/Before.Console')
|
|
if ($args.Count -gt 0) {
|
|
$dotnetArgs += '--'
|
|
$dotnetArgs += $args
|
|
}
|
|
|
|
if (Get-Command mise -ErrorAction SilentlyContinue) {
|
|
mise exec -- dotnet @dotnetArgs
|
|
}
|
|
else {
|
|
dotnet @dotnetArgs
|
|
}
|
|
exit $LASTEXITCODE
|
|
}
|
|
finally {
|
|
Pop-Location
|
|
}
|