Se7enSoft의 MozNet 플러그인을 사용하고 있습니다. 이것은 FireFox 3.6 용 WebBrowser 컨트롤입니다. XulRunner를 사용합니다.SetEnvironmentVariable이 PATH 변수를 변경하지 않습니다.
내가해야 할 일은 초기화 (...) 메소드를 실행하는 것입니다.
var binDirectory = Path.GetDirectoryName(
Assembly.GetExecutingAssembly().Location);
var xulRuntimeDirectory = Path.Combine(binDirectory, "xul");
Se7enSoft.MozNet.Xpcom.Initialize(xulRuntimeDirectory, null);
XulRunner를 설치 한 디렉토리로 전달해야합니다. 이 플러그인의 Initialize 메서드는 내부적으로 다음 DLLImport를 사용합니다.
[DllImport("xpcom", CharSet = CharSet.Ansi,
EntryPoint = "NS_CStringContainerFinish",
CallingConvention = CallingConvention.Cdecl)]
internal static extern int Moz_CStringContainerFinish(ACString container);
XulRunner의 xpcom.dll에서 NS_CStringContainerFinish 메서드가 필요합니다.
이 메서드를 처음으로 호출하기 직전에 MozNet 플러그인은 일시적으로 PATH 환경 변수를 변경합니다.
Environment.SetEnvironmentVariable("path",
Environment.GetEnvironmentVariable("path") + ";" +
binDirectory, EnvironmentVariableTarget.Process);
는 XULRunner의 위치
일시적으로는 xpcom.dll (및 기타)를 해결할 수 있는지 확인하기 위해 PATH 환경 변수에 추가됩니다.그러나 여전히 찾을 수 없습니다. 다음 예외가 발생합니다.
Unable to load DLL 'xpcom': Cannot find method.
(Exception from HRESULT: 0x8007007F)
at Se7enSoft.MozNet.Native.MozNativeMethods.Moz_CStringContainerInit(
ACString container)
at Se7enSoft.MozNet.Xpcom.XpCom_Init()
at Se7enSoft.MozNet.Xpcom.Initialize(String mozPath, String profPath)
이 문제는 3 PC의 (윈도우 2000 & XP)에서 발생합니다. 수백 명의 사람들에게 잘 작동합니다.
Debug 및 Environment.SetEnvironmentVariable (...) 메서드를 단계별로 실행하면 문제가 재현 될 수 있습니다.
PATH 환경 변수를 변경하지 못하게하는 SetEnvironmentVariable에 문제가 있습니까?
로밍 프로필을 사용하고 있습니까? –
수 있습니다. 일반적으로는 아니지만 이전에는 부정확 한 프로필 (로밍 프로필)이있었습니다. 그것으로 체크인. –
확인. 문제를보고 한 사용자에게는 로밍 프로필이 없습니다. –