.NET/MAUI

MAUI 프로젝트에서 Windows 전용 네이티브 DLL 빌드 할 때 포함하도록 세팅

leo21c 2026. 1. 16. 17:21

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 빌드 시에만 포함되도록 다음과 같은 코드를 추가하세요.

<ItemGroup Condition="$(TargetFramework.Contains('-windows'))">
    <Content Include="Platforms\Windows\libs\x86_64\*.dll">
        <Pack>false</Pack>
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        <Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
    </Content>
</ItemGroup>

 

  • Condition: Windows 대상 빌드일 때만 동작하도록 제한합니다.
  • Link: %(RecursiveDir)를 사용하면 프로젝트 내의 폴더 구조를 유지하거나, 위 예시처럼 설정하여 실행 파일(.exe)과 같은 레벨에 DLL이 놓이도록 조절할 수 있습니다.

💡 추가 팁: 아키텍처(x64) 확인

MAUI Windows 앱은 기본적으로 x64 아키텍처를 사용합니다. 질문에 적어주신 경로가 x86_64인데, 이는 x64와 동일하므로 문제가 없으나, 만약 DLL이 32비트(x86)용이라면 64비트 프로세스에서 로드할 수 없어 BadImageFormatException이 발생할 수 있습니다. 프로젝트의 대상 플랫폼DLL의 아키텍처가 일치하는지 꼭 확인하세요.

설정 과정에서 특정 에러(예: DLL을 찾을 수 없음 등)가 발생한다면, 빌드 후 bin 폴더 내에 실제로 파일이 들어와 있는지 먼저 확인해 보시는 것이 좋습니다.

 

LIST