개발관련/other

C# 컴파일 된 실행 파일에 DLL을 포함하는 방법

Rateye 2021. 12. 19. 14:26
728x90
반응형
질문 : 컴파일 된 실행 파일에 DLL 포함

컴파일 된 C # 실행 파일에 기존 DLL을 포함 할 수 있습니까 (배포 할 파일이 하나만 있도록)? 가능하다면 어떻게할까요?

일반적으로 나는 DLL을 외부에두고 설치 프로그램이 모든 것을 처리하도록하는 것이 멋지지만, 직장에서이 질문을 한 두 사람이 있었는데 솔직히 모르겠습니다.

답변

Costura.Fody 를 사용하는 것이 좋습니다. 어셈블리에 리소스를 포함하는 가장 쉽고 쉬운 방법입니다. NuGet 패키지로 제공됩니다.

Install-Package Costura.Fody

프로젝트에 추가 한 후 출력 디렉터리에 복사 된 모든 참조를 어셈블리에 자동으로 포함합니다. 프로젝트에 대상을 추가하여 포함 된 파일을 정리할 수 있습니다.

Install-CleanReferencesTarget

또한 pdb를 포함할지, 특정 어셈블리를 제외할지 또는 즉시 어셈블리를 추출할지 여부를 지정할 수 있습니다. 내가 아는 한 관리되지 않는 어셈블리도 지원됩니다.

최신 정보

현재 일부 사람들은 DNX에 대한 지원 을 추가하려고합니다.

업데이트 2

최신 Fody 버전의 경우 MSBuild 16 (Visual Studio 2019)이 필요합니다. Fody 버전 4.2.1은 MSBuild 15를 수행합니다. (참조 : Fody는 MSBuild 16 이상에서만 지원됩니다. 현재 버전 : 15 )

출처 : https://stackoverflow.com/questions/189549/embedding-dlls-in-a-compiled-executable
728x90
반응형