2014-05-12 1 views
2

기본적으로 컴파일하려고하는 C#의 Windows 콘솔 응용 프로그램이 있습니다. .NET 4.0이없는 컴퓨터에서 실행해야하기 때문에. ngen.exe를 사용하여 출력 (myproject.ni.exe)과 DLL을 가져 왔지만 다른 컴퓨터에 복사하고 exe를 실행하려고하면 올바른 win32 응용 프로그램이 아니라고 표시됩니다. 내가 뭔가 빠진거야?C# 실행 파일의 Ngen 출력이 유효하지 않습니다. Win32 응용 프로그램

감사합니다.

+2

Ngen은 항상 대상 컴퓨터에서 실행해야하며 기본 이미지를 복사하는 것은 잘못되었습니다. .NET 설치 누락에 대한 해결 방법이 아닌 ** ** 네이티브 이미지는 실행 프로그램이 아닙니다. 이전에는 .NET의 초창기에 "링커"였지만 어디서나 설치되어 무료로 제공되는 소프트웨어와 경쟁 할 수 없었습니다. –

+0

고마워 Hans, Ngen이하는 일에 대해 오해 한 것처럼 보입니다. – Shahab78

답변

3

예, NGen은 실행 가능/원시 DLL을 생성하지 않으며 .Net 어셈블리와 함께 사용할 사전 JIT 코드를 생성합니다.

.Net 어셈블리에서 독립 실행 형 실행 파일을 만들 수있는 다른 도구 (예 : Compiling C# to Native?)가 있지만 NGen은 그 중 하나가 아닙니다.

+0

Alexei, 매우 유익한 답변에 감사드립니다. – Shahab78

관련 문제