배포판 보호 수준 강화 및 single-file 호환 보정
Some checks failed
Release Gate / gate (push) Has been cancelled

배포 스크립트와 앱 Release 설정에 single-file, ReadyToRun, 압축 번들, 최적화 옵션을 추가해 릴리즈 배포 출력의 보호 수준을 한 단계 높였습니다.

WebSearchHandler와 SettingsWindow는 single-file 환경에서 Assembly.Location 경고가 발생하지 않도록 AppContext.BaseDirectory 및 AssemblyInformationalVersionAttribute 기반으로 수정했습니다.

README와 DEVELOPMENT 문서를 갱신했고, dotnet build 검증에서 경고 0 오류 0을 다시 확인했습니다.
This commit is contained in:
2026-04-06 16:09:00 +09:00
parent 8da0a069b7
commit 1ad75b5896
6 changed files with 195 additions and 67 deletions

View File

@@ -1446,9 +1446,11 @@ public partial class SettingsWindow : Window
try
{
var asm = System.Reflection.Assembly.GetExecutingAssembly();
// FileVersionInfo 에서 읽어야 csproj <Version> 이 반영됩니다.
var fvi = System.Diagnostics.FileVersionInfo.GetVersionInfo(asm.Location);
var ver = fvi.ProductVersion ?? fvi.FileVersion ?? "?";
var infoAttr = asm.GetCustomAttributes(typeof(System.Reflection.AssemblyInformationalVersionAttribute), false)
.OfType<System.Reflection.AssemblyInformationalVersionAttribute>()
.FirstOrDefault();
var info = infoAttr?.InformationalVersion;
var ver = info ?? asm.GetName().Version?.ToString() ?? "?";
// 빌드 메타데이터 제거 (예: "1.0.3+gitabcdef" → "1.0.3")
var plusIdx = ver.IndexOf('+');
if (plusIdx > 0) ver = ver[..plusIdx];