배포 스크립트와 앱 Release 설정에 single-file, ReadyToRun, 압축 번들, 최적화 옵션을 추가해 릴리즈 배포 출력의 보호 수준을 한 단계 높였습니다. WebSearchHandler와 SettingsWindow는 single-file 환경에서 Assembly.Location 경고가 발생하지 않도록 AppContext.BaseDirectory 및 AssemblyInformationalVersionAttribute 기반으로 수정했습니다. README와 DEVELOPMENT 문서를 갱신했고, dotnet build 검증에서 경고 0 오류 0을 다시 확인했습니다.
This commit is contained in:
@@ -40,10 +40,16 @@
|
||||
|
||||
<!-- Release 빌드 시 추가 난독화 설정 -->
|
||||
<PropertyGroup Condition="'$(Configuration)'=='Release'">
|
||||
<Optimize>true</Optimize>
|
||||
<!-- 사용하지 않는 멤버 제거 (IL trimming) -->
|
||||
<PublishTrimmed>false</PublishTrimmed>
|
||||
<!-- PDB 제거 -->
|
||||
<CopyOutputSymbolsToPublishDirectory>false</CopyOutputSymbolsToPublishDirectory>
|
||||
<!-- 배포판 보호 수준 강화 -->
|
||||
<PublishSingleFile>true</PublishSingleFile>
|
||||
<EnableCompressionInSingleFile>true</EnableCompressionInSingleFile>
|
||||
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
|
||||
<PublishReadyToRun>true</PublishReadyToRun>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- UseWindowsForms의 암묵적 using(System.Windows.Forms)이 WPF의
|
||||
|
||||
@@ -20,7 +20,7 @@ public class WebSearchHandler : IActionHandler
|
||||
|
||||
/// <summary>내장 검색 엔진 아이콘 폴더 (Assets\SearchEngines)</summary>
|
||||
private static readonly string _iconDir = Path.Combine(
|
||||
Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) ?? ".",
|
||||
AppContext.BaseDirectory,
|
||||
"Assets", "SearchEngines");
|
||||
|
||||
public WebSearchHandler(SettingsService settings) => _settings = settings;
|
||||
|
||||
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user