Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 6 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,16 @@ gh auth switch --user OsscJpDevInfra # 異なる場合は切り替え
| 内容 | 読む文書 |
|---|---|
| **コーディング規約(全領域共通)** | [`CODING.md`](root/programs/CODING.md) |
| **設定ファイルの扱い(全領域共通)** | [`Configuration.md`](root/programs/Configuration.md) |
| `root/programs/CS/Frameworks/` の分析 | [`Frameworks/ANALYSIS.md`](root/programs/CS/Frameworks/ANALYSIS.md) |
| `root/programs/CS/Samples/` の分析 | [`Samples/ANALYSIS.md`](root/programs/CS/Samples/ANALYSIS.md) |
| `root/programs/CS/Samples4NetCore/` の分析 | [`Samples4NetCore/ANALYSIS.md`](root/programs/CS/Samples4NetCore/ANALYSIS.md) |

**設定ファイルに「仕組み」を書き足したくなったら、[`Configuration.md`](root/programs/Configuration.md)
に書く。** 設定ファイルは 86 個あり、一部にだけ詳しい説明があると、
**書かれていないファイルを「該当しない」と誤読させる。**
値の隣に書くのは「そのキーが何か」までにする(分担は同書 0 節)。

**コードを変更する前に、[`CODING.md`](root/programs/CODING.md) と、
作業対象を所管する `ANALYSIS.md` の両方を読むこと。**

Expand Down
23 changes: 21 additions & 2 deletions root/programs/3_SmokeTest.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@
2026/08/01 玄人 幸道 新規作成(リリース ワークのエージェント化)
2026/08/07 玄人 幸道 Orders2が無ければ作成するようにした
2026/08/13 玄人 幸道 Lang を追加(VB 版の疎通に対応)
2026/08/15 玄人 幸道 Args を持たない対象が PowerShell 5.1 で起動できず、
しかも前回の出力で OK と判定されていたのを修正
#>
[CmdletBinding()]
param(
Expand Down Expand Up @@ -1186,6 +1188,13 @@ foreach ($t in $selected)
# Start-Process でファイルへ直接リダイレクトすれば、どちらも起きない。
# 出力は生のまま残り、環境による差も出ない。
$err = "$out.err"

# **前回の出力を必ず消してから実行する。**
# $out / $err は対象ごとの固定名で、$OutputDir(既定は %TEMP%)に残る。
# 消さずに実行すると、**起動に失敗しても前回の出力が判定に使われ、
# 実行していないのに OK になる**(所要時間が 0.0 秒になるのが兆候)。
Remove-Item $out, $err -Force -ErrorAction SilentlyContinue

Write-Host " 実行中 ..."
$sw = [Diagnostics.Stopwatch]::StartNew()

Expand All @@ -1199,15 +1208,25 @@ foreach ($t in $selected)

$argList = @("`"$exe`"")
if ($needSep) { $argList += "--" }
$argList += @($t.Args)
$argList += @($t.Args | Where-Object { $null -ne $_ })

Start-Process "dotnet" -ArgumentList $argList -NoNewWindow -Wait `
-WorkingDirectory (Split-Path $exe) `
-RedirectStandardInput $emptyIn -RedirectStandardOutput $out -RedirectStandardError $err
}
else
{
$argList = @($t.Args)
# **null 要素を落としてから数える。**
# Args を持たない対象では $t.Args が $null になり、@($null) は
# 「要素数 1・中身 null」の配列になる。**Count は 0 にならない**ので、
# 下のガードをすり抜けて -ArgumentList に null 入りの配列が渡る。
# これを Windows PowerShell 5.1 は拒否する(PS 7 は空文字に変換して通す)。
#
# PS 5.1 : Start-Process : パラメーター 'ArgumentList の引数を確認できません。…
# PS 7 : そのまま動く
#
# 5.1 でだけ落ちるため、7 で検証していると気付けない。
$argList = @($t.Args | Where-Object { $null -ne $_ })

if ($argList.Count -eq 0)
{
Expand Down
Loading