가 NGEN과 같은 닷넷 프레임 워크 디렉토리에있을 것입니다 :
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
옵션 1 - GetCORSystemDirectory()는 .NET Framework의 디렉토리를 얻을하는 데 사용할 수있는 시스템이 재부 API 호출이지만, 여기서 문제는 .NET 응용 프로그램에서 호출해야하는 설명서를 읽는 것에서 들리는 것입니다. 따라서 작은 .NET 응용 프로그램을 실행하고 GetCORSystemDirectory() 결과를 ini 파일에 기록 할 수 있습니다. 어쩌면 해당 기능을 검색하고 Google을 통해 유용한 정보를 찾을 수 있는지 알아보십시오.
옵션 2 - 예상되는 경로에서 .NET 프레임 워크를 가정하고 디렉토리를 반복하여 "v2.0"으로 시작하는 디렉토리를 찾을 수 있습니다.
옵션 3 - isntaller에서 ngen을 추출한 다음 실행하십시오. 이것이 내가 때때로 regasm으로 한 일입니다. 나는 그것이 부적절한 영향인지 여부, 이것이 완전히 합법적인지 여부, 또는 그것이 의존하는 다른 파일이 있는지 여부에 대해서는 확신 할 수 없다. regasm.exe와 같은 것이라면 .NET 프레임 워크가 이미 설치되어 있어야합니다. , 모두가 올바른 매개 변수를 NGEN를 호출 남아 경로가 알려져있다 http://nsis.sourceforge.net/Get_directory_of_installed_.NET_runtime
되면 :
"참고 : 이것은 ngen이 대부분의 시스템에없는 경로 또는 현재 디렉토리에 있다고 가정하므로 SetOutPath를 사용하여 현재 디렉토리를 설정하거나 ngen에 전체 경로를 사용하십시오." 그건 사실 문제입니다. ngen을 호출하는 신뢰할 수있는 방법을 찾을 수 없습니다. 어쩌면이 정보가 레지스트리 어딘가에서 사용할 수 있을까요? – BlackStar
고마워! 아래 게시물 (NGen 경로에 있음)과 함께 귀하의 게시물은 나를 실제 해결책으로 이끌었습니다. – BlackStar
@BlackStar : 궁금한 점에 해결책을 추가해 주시겠습니까? 아니면, 더 나은, http://nsis.sourceforge.net에서 위키에 추가하고 귀하의 질문에 링크? NSIS 설치 프로그램에서 ngen을 실행하는 것이 유일한 방법은 아닙니다.:-) –