Microsoft MVP성태의 닷넷 이야기
글쓴 사람
Roya (peopleand054 at gmail.com)
홈페이지
첨부 파일
 

안녕하세요.
C# COM Host DLL을 C++에서 사용중입니다.
dotnet core 8.0 사용하여 dll을 만들었고, C++에서 사용하고 있는대요.
특정 환경에서는 dotnet 8.0 runtime 이 설치되어 있지 않아 실행이 안됩니다.
그래서, SelfContained 설정을 했지만, com host dll 에서는 사용이 안되는거 같은대 맞을까요??
제공이 안된다면, 다른 방법은 없을까요???








[최초 등록일: ]
[최종 수정일: 10/4/2024]


비밀번호

댓글 작성자
 



2024-10-04 07시29분
DLL이기 때문에 self-contained로 배포해도 (주체적으로 프로세스를 시작하는 경우와 달리) 런타임을 초기화하지는 못할 것입니다.

다른 방법이라면, self-contained로 생성된 디렉터리의 내용으로 C++ EXE 측에서 로드해 직접 호스팅 환경을 초기화하는 것을 생각해 볼 수 있습니다. 관련해서는 다음의 문서에 자세하게 설명하고 있으니 참고하세요.

Write a custom .NET host to control the .NET runtime from your native code
; https://learn.microsoft.com/en-us/dotnet/core/tutorials/netcore-hosting

저도 유사하게 이와 같은 코드로 글을 쓴 적이 있습니다.

.NET Core를 직접 호스팅해 (runtimeconfig.json 없이) EXE만 배포해 실행
; https://www.sysnet.pe.kr/2/0/12427

(직접 해보지 않고 답변하는 것이라) 해보시고 결과 좀 공유해 주세요. ^^
정성태

NoWriterDateCnt.TitleFile(s)