문제

.NET 프레임 워크없이 .NET 프로그램을 배포하고 싶습니다. .NET 프로그램을 기계 코드로 컴파일 할 수 있습니까?

도움이 되었습니까?

해결책

예, ngen.exe를 사용하여 사전 컴파일 할 수 있지만 CLR 의존성을 제거하지는 않습니다.

여전히 IL 어셈블리도 배송해야합니다. NGEN의 유일한 이점은 JIT를 호출하지 않고 응용 프로그램을 시작할 수 있다는 것입니다.

C#을 통해 CLR에 따르면 :

또한 NGEN을 사용하여 사전 컴파일 된 어셈블리는 일반적으로 JIT 어셈블리보다 느리게 진행되며 JIT 컴파일러는 대상 기계 (32 비트? 64 비트? 특수 레지스터? 등)에 최적화 할 수 있기 때문에 NGEN은 기준 편집을 생성합니다.

편집하다:

CLR을 통해 C#을 통해 위의 정보에 대한 논쟁이 있습니다. 일부는 설치 프로세스의 일부로 대상 머신에서 NGEN을 실행해야한다고 말합니다.

다른 팁

Remotesoft에는 하나가 있습니다.도롱뇽 .NET 링커

그래도 경험이 없습니다.

이를 수행하는 타사 도구가 있습니다.

또 다른 (비싸고 독점적 인 라이센스는 $ 1599에서 시작) 제품이 할 수있는 제품입니다. Xenocode postbuild. 그럼에도 불구하고 작은 아프리카 국가의 총 생산물에 대한 비용이 들었습니다.

.NET IL 코드를 컴퓨터 코드로 컴파일 할 수 있습니까?

예, 그러나 .NET 프레임 워크는 런타임 (기본값) 또는 설치 시간 (NGEN)에서 귀하를 위해이를 수행합니다. 다른 이유 중에서도이 IL-> 기계 코드는 각 설치 시스템에서 별도로 수행되므로 특정 시스템에 최적화 할 수 있습니다.

.NET 프레임 워크없이 .NET 프로그램을 배포하고 싶습니다. .NET 프로그램을 기계 코드로 컴파일 할 수 있습니까?

아니요, 모든 의도와 목적을 위해이 작업을 수행 할 수 없습니다. 제 3 자 해결 방법은 일부 시나리오에서 작동 할 수 있지만, 그때까지는 더 이상 "관리 된 코드"또는 ".NET"을 고려하지 않을 것입니다.

예, 이제 할 수 있습니다! 최근 Microsoft가 발표했습니다 .NET 네이티브, .NET 기본 런타임 (MRT라고 함)으로 애플리케이션을 하나의 바이너리 (실제로 하나의 실행 파일 및 하나의 동적 라이브러리)로 컴파일하는 기술.

링크 참조 :http://blogs.msdn.com/b/dotnet/archive/2014/04/02/announcing-net-net-preview.aspx http://blogs.msdn.com/b/dotnet/archive/2014/04/24/dotnetnative-performance.aspx

거기 있습니다 IL2CPU 컴파일 부분의 경우.

나는 그것이 가능하다고 생각하지 않습니다. 편견이있는 어셈블리를 만들 수 있지만 여전히 프레임 워크가 필요합니다.

프레임 워크 배포의 크기에 관심이 있다면 읽을 수 있습니다. 이것.

나는 당신이 말하지 말아야한다고 생각합니다. 그것이 JIT 컴파일러의 작업입니다.

그러나 ClickOnce 또는 Windows Installer를 사용하여 누락 된 프레임 워크가 큰 문제가되지 않도록 배포 할 수 있습니다. 설치 프로그램에 프레임 워크를 다운로드하여 설치하도록 지시 할 수 있습니다.

--aot 옵션이있는 Mono Project : Mono 명령을보십시오. http://www.mono-project.com/aot

나는 항상 CLR 의존성없이 C#을 기계 코드로 직접 컴파일하는 것이 멋질 것이라고 생각했습니다 ....

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top