DsmTool: 프로젝트 의존성 매트릭스(DSM) 생성기
- .NET/C++ 저장소를 스캔해 ProjectReference/내부 Reference/내부 NuGet 의존을 파싱하고 DSM(HTML+CSV)을 생성하는 GUI/CLI 도구 - Avalonia + NativeAOT 단일 exe(완전 무설치), dsm.config.ini 팀별 설정 지원 - 내부 NuGet 자동 감지, 위상 정렬(순환 검출), 그룹 색상(auto/topfolder/prefix) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
8250efbe57
17 files changed
+976
No files matched your search
@@ -0,0 +1,45 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion
|
||||
chcp 65001 >nul
|
||||
REM == DsmTool single-exe build (NativeAOT) ==
|
||||
REM NativeAOT linker fails on non-ASCII paths, so copy sources to an ASCII temp
|
||||
REM dir, build there, then copy the exe back. Requires: .NET SDK + VS C++ workload.
|
||||
|
||||
set "PROJ=%~dp0"
|
||||
set "WORK=%TEMP%\dsmbuild_ascii"
|
||||
|
||||
echo [1/4] copy sources to %WORK%
|
||||
if exist "%WORK%" rmdir /s /q "%WORK%"
|
||||
mkdir "%WORK%"
|
||||
xcopy "%PROJ%*.cs" "%WORK%\" /y >nul
|
||||
xcopy "%PROJ%*.csproj" "%WORK%\" /y >nul
|
||||
xcopy "%PROJ%*.axaml" "%WORK%\" /y >nul
|
||||
xcopy "%PROJ%*.manifest" "%WORK%\" /y >nul
|
||||
xcopy "%PROJ%native\*" "%WORK%\native\" /y /i >nul
|
||||
|
||||
echo [2/4] locate Visual C++ (vcvars64)
|
||||
set "VCV="
|
||||
for %%E in (Enterprise Professional Community BuildTools) do (
|
||||
if not defined VCV if exist "C:\Program Files\Microsoft Visual Studio\2022\%%E\VC\Auxiliary\Build\vcvars64.bat" set "VCV=C:\Program Files\Microsoft Visual Studio\2022\%%E\VC\Auxiliary\Build\vcvars64.bat"
|
||||
)
|
||||
for %%E in (Enterprise Professional Community BuildTools) do (
|
||||
if not defined VCV if exist "C:\Program Files (x86)\Microsoft Visual Studio\2022\%%E\VC\Auxiliary\Build\vcvars64.bat" set "VCV=C:\Program Files (x86)\Microsoft Visual Studio\2022\%%E\VC\Auxiliary\Build\vcvars64.bat"
|
||||
)
|
||||
if not defined VCV (
|
||||
echo [ERROR] vcvars64.bat not found. Install VS 2022 "Desktop development with C++".
|
||||
exit /b 1
|
||||
)
|
||||
set "PATH=%PATH%;C:\Program Files (x86)\Microsoft Visual Studio\Installer"
|
||||
call "%VCV%" >nul
|
||||
|
||||
echo [3/4] publish NativeAOT single exe
|
||||
pushd "%WORK%"
|
||||
dotnet publish -c Release
|
||||
set "ERR=%ERRORLEVEL%"
|
||||
popd
|
||||
if not "%ERR%"=="0" ( echo [ERROR] publish failed %ERR% & exit /b %ERR% )
|
||||
|
||||
echo [4/4] copy exe back
|
||||
copy /y "%WORK%\bin\x64\Release\net9.0\win-x64\publish\DsmTool.exe" "%PROJ%..\DsmTool.exe" >nul
|
||||
echo DONE: "%PROJ%..\DsmTool.exe"
|
||||
endlocal
|
||||
Reference in new issue
Block a user