.NET/MAUI13 MAUI 프로젝트 MSVS2022에서 MSVS2026 마이그레이션 우선 단순히 MSVS2022 MAUI 프로젝트를 MSVS 2026에서 열어 빌드를 하면 에러가 발생한다.에러 내용은 Workload 문제인 것으로 보인다.따라서 Visual Studio 버전이 바뀌면 MAUI 워크로드도 다시 설정해야 합니다. 1. SDK 설치 여부 확인- '보기' - '터미널' 클릭 해서 '터미널' 창을 실행합니다.- "dotnet --list-sdks" 명령어를 입력해서 설치된 버전을 확인 합니다. 2. MAUI 워크로드 (Workload) 설치 상태 Visual Studio 버전이 바뀌면 MAUI 워크로드도 다시 설정해야 합니다.워크로드 확인: 터미널에서 "dotnet workload list"를 입력하여 설치된 목록을 확인합니다.워크로드 업데이트: "dotnet workload .. 2026. 1. 22. MAUI 프로젝트에서 Windows 전용 네이티브 DLL 빌드 할 때 포함하도록 세팅 1. 솔루션 탐색기에서의 속성 설정가장 간단한 방법은 Visual Studio의 솔루션 탐색기에서 해당 DLL 파일을 우클릭하여 속성을 변경하는 것입니다.빌드 작업 (Build Action): 내용 (또는 Content)출력 디렉터리에 복사 (Copy to Output Directory): 새 버전이면 복사 (또는 항상 복사)이렇게 설정하면 빌드 시 bin\Debug\net8.0-windows10...\win-x64\ 폴더에 해당 DLL이 자동으로 복사됩니다.2. 프로젝트 파일(.csproj) 편집 (권장)플랫폼별로 경로를 명확히 제어하고 싶다면 .csproj 파일을 직접 수정하는 것이 더 확실합니다. Platforms\Windows 폴더 내의 파일들이 Windows 빌드 시에만 포함되도록 다음과 같은 .. 2026. 1. 16. MAUI 안드로이드 앱에서 c++로 제작한 *.so 파일을 찾지 못하는 문제 c++ dll을 제작해서 윈도우에서 작동하는 것은 dll을 import 해서 정상적으로 작동하는 것까지 확인을 했다.따라서 DllImport를 사용하는 방식에서 문제가 발생할 것 같지는 않았다. 표준 C 라이브러리로 특별한 기능을 가지고 있는 것도 아니고 함수 하나를 호출해서 그 값을 가지고 오도록 했다. C++ 소스#include // memcpy 사용을 위해 추가extern "C" { /// /// [중요] visibility("default") 속성을 추가하여 외부(C#)에서 함수를 찾을 수 있게 함 /// __attribute__((visibility("default"))) void GetData(unsigned char* buffer, int len) { int copyLen = 8; .. 2026. 1. 15. .NET MAUI Android 프로젝트에 .so 파일 포함 설정 가이드 .NET MAUI Android 프로젝트에 .so 파일 포함 설정 가이드Android 앱에서 C/C++로 작성된 라이브러리(.so)를 사용하려면, 지원하는 CPU 아키텍처(ABI)별로 폴더를 구분하여 위치시키고, **빌드 작업(Build Action)**을 올바르게 설정해야 합니다.1. 폴더 구조 생성 및 파일 배치Android는 기기마다 CPU 아키텍처가 다릅니다. 따라서 .so 파일도 각 아키텍처에 맞게 컴파일된 파일들을 각각의 폴더에 넣어야 합니다.Visual Studio의 **솔루션 탐색기(Solution Explorer)**에서 다음 경로에 폴더를 생성하고 파일을 복사하세요.경로: Platforms -> Android -> libs (폴더 생성)아키텍처별 하위 폴더:arm64-v8a (최신 안드.. 2026. 1. 14. MSVS 2022에서 SO 파일 제작 방법 윈도우의 DLL(Dynamic Link Library)에 해당하는 것이 리눅스나 안드로이드에서는 SO(Shared Object) 파일입니다. Visual Studio(MSVS)는 훌륭한 크로스 플랫폼 개발 도구이기 때문에, 윈도우 환경에서도 안드로이드용 .so 파일을 직접 빌드할 수 있습니다.MAUI 안드로이드 앱 개발에 맞춰 Visual Studio 2022를 기준으로 .so 파일을 생성하는 과정을 단계별로 설명입니다.1단계: 필요 구성 요소(워크로드) 설치Visual Studio가 안드로이드용 C++ 코드를 빌드하려면 관련 도구가 설치되어 있어야 합니다.Visual Studio Installer를 실행합니다.현재 사용 중인 VS 2022의 [수정] 버튼을 클릭합니다."C++를 사용한 모바일 개발" (.. 2026. 1. 12. MAUI 디컴파일 회피 검토 AI의 도움으로 아래와 같은 정보를 확인했다.나는 아래 방법 중에 안드로이드용 so 파일을 제작해서 사용하는 방법을 이용하려고 한다.기존에 C#으로 개발한 프로그램도 인증이나 Key 처리는 DLL을 제작해서 사용을 했기 때문이다.NET MAUI(Multi-platform App UI)로 개발된 안드로이드 앱(APK/AAB)도 C# 윈도우 프로그램과 마찬가지로 디컴파일이 가능하며, 소스 코드를 복원하는 것이 비교적 쉽습니다.특히 전력 제어 장치(Recloser 등)와 같은 중요 인프라를 다루는 소프트웨어에서 **하드코딩된 암호화 키(Key)**가 노출되는 것은 보안상 매우 치명적입니다. 제공해주신 문서 내용과 귀하의 개발 환경(C++, C#, MAUI)을 고려하여, 디컴파일 위험성과 암호화 키 보호 방안을.. 2026. 1. 12. MAUI 함수 호출 지연 방법 비교 특정 함수가 콜이 되면 몇초 이후에 다른 함수를 호출하고 싶다. timer 이외에 다른 방법이 없을까?MAUI 함수 호출 지연 방법 비교기존의 System.Timers.Timer나 System.Threading.Timer는 객체 수명 관리나 스레드 컨텍스트 전환(UI 스레드 접근 시) 등에서 번거로울 수 있습니다. MAUI와 .NET 환경에서 가독성과 비동기 처리 효율을 높일 수 있는 더 세련된 방법 3가지를 제안해 드립니다.1. Task.Delay (가장 추천하는 방법)C#의 비동기 프로그래밍 모델(Async/Await)을 사용하는 가장 표준적이고 깔끔한 방법입니다.장점: 코드가 순차적으로 읽히므로 가독성이 매우 좋습니다. 별도의 콜백 함수를 만들 필요 없이 흐름 그대로 작성 가능합니다.특징: UI 스.. 2025. 12. 11. MSVS에 빌드 옵션에 Android 로컬 디바이스가 표시되지 않을 때 결론: 모두 재시작을 해서 문제 해결 현재로서는 스마트폰을 재시작한 이후 문제가 해결 되었다고 생각한다.1. 안드로이드 단말기 설정 재확인 (가장 흔한 원인)갑자기 연결이 끊겼다면, 케이블을 다시 꽂는 과정에서 USB 연결 모드가 변경되었을 가능성이 큽니다.USB 사용 모드 확인:폰 상단 알림창을 내려 "USB로 충전 중" 알림을 터치합니다.설정이 **'충전 전용'**으로 되어 있다면 '파일 전송(MTP)' 또는 **'PTP'**로 변경해 주세요. (충전 전용 모드에서는 디버깅이 안 됩니다.)USB 디버깅 권한 재승인:설정 > 개발자 옵션에서 USB 디버깅을 껐다가 다시 켭니다.이때 PC 화면이 아니라 스마트폰 화면을 보세요. "이 컴퓨터의 USB 디버깅을 허용하시겠습니까?"라는 팝업이 뜬다면 반드시 *.. 2025. 12. 8. MAUI 상대/절대 경로 설명 앱을 개발하다 보면 리스트에서 상세 화면으로 들어가거나(상대 경로), 연결을 끊고 메인 홈으로 돌아오는(절대 경로) 등 네비게이션 흐름 제어가 매우 중요합니다. Shell.Current.GoToAsync의 핵심은 **"네비게이션 스택(Navigation Stack)을 어떻게 다루느냐"**에 있습니다. 이 부분을 명확히 이해하면 뒤로 가기 버튼을 눌렀을 때 앱이 종료되는 실수를 막을 수 있습니다. 1. 절대 경로 vs 상대 경로 비교구분문법 (URI)동작 방식 (Navigation Stack)비유용도절대경로//로 시작스택 초기화 (Reset)기존에 쌓인 페이지를 모두 지우고 새 페이지를 루트로 설정합니다."집 대문으로 바로 이동"탭 간 이동, 로그아웃 후 홈 이동, 메인 메뉴 전환상대경로/ 없음 또는 .... 2025. 11. 24. 이전 1 2 다음