CefSharp에는 실행에 필요한 많은 종속성과 라이브러리가 있습니다. 빌드 폴더가 복잡합니다. 필요한 .dll 및 .pak 종속성을 하위 폴더로 옮기는 방법은 무엇입니까?CefSharp 종속성 및 파일을 하위 디렉토리로 이동하는 방법?
1
A
답변
5
먼저 모든 것을 쉽게하기 위해 Visual Studio에 폴더를 추가하고 거기에 필요한 모든 파일을 넣는 것이 좋습니다. 당신이 탐색기에서이 폴더를 만들 경우, 솔루션 탐색기에서 솔루션 위의 '모든 파일 표시'를 클릭 :
이 오른쪽 폴더 (들) 및 파일 (들)을 포함하고 선택하고자을 클릭 '프로젝트에 포함하십시오.'
에 '출력 Directy에 복사'를 변경해야합니다 :이와 비슷한 파일 트리와 끝까지해야 more info on github
-
모든 필요한 CefSharp 파일을 포함해야합니다 모든 파일의 속성에서 '항상 복사'를 선택하십시오. 이제 코드
. 솔루션에는 'App.config'파일이 있어야합니다 (그렇지 않은 경우 Google을 사용하면 생성 방법을 찾을 수 있습니다). 당신은probing
요소가 라이브러리에 추가 폴더에 보일 것 창을 알려줍니다 그것 (
MSDN - probing)
에 새
assemblyBinding
및
probing
요소를 추가 할 것입니다. 따라서 우리는 CefSharp에 필요한 모든 .dll 파일을이 방법으로로드 할 수 있습니다.
예에 App.config :
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="resources/cefsharp" />
</assemblyBinding>
</runtime>
</configuration>
주 : 경로 .exe 파일의 위치를 기준으로한다.
이제는 .dll 파일을 처리하지만 이제 CefSharp에 대한 설정을 변경하여 .pak 파일과 로캘 및 BrowserSubprocess.exe를 찾을 위치를 알고 있어야합니다.
이렇게하려면 모든 파일 경로를 정의하고 수동으로 CefSharp에 지정합니다. 여기
그것이 어떻게 보일지의 예 :// File location variables
static string lib, browser, locales, res;
[STAThread]
static void Main()
{
// Assigning file paths to varialbles
lib = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"resources\cefsharp\libcef.dll");
browser = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"resources\cefsharp\CefSharp.BrowserSubprocess.exe");
locales = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"resources\cefsharp\locales\");
res = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"resources\cefsharp\");
var libraryLoader = new CefLibraryHandle(lib);
bool isValid = !libraryLoader.IsInvalid;
Console.WriteLine($"Library is valid: {isValid}");
LoadForm();
libraryLoader.Dispose();
}
[MethodImpl(MethodImplOptions.NoInlining)]
private static void LoadForm()
{
var settings = new CefSettings();
settings.BrowserSubprocessPath = browser;
settings.LocalesDirPath = locales;
settings.ResourcesDirPath = res;
Cef.Initialize(settings, shutdownOnProcessExit: false, performDependencyCheck: false);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new CefWinForm());
}
모든이가에서 적응 : https://github.com/cefsharp/CefSharp/issues/601
원래의 문제는 완전히 따르고 그래서 나는를 공유하고자 제대로 작동하기 어려움 미래에 비슷한 문제가 발생할 경우를 대비 한 지식.
참고 : Visual Studio는 여전히 .dll, .pak, .xml 등을 출력 디렉토리에 포함하지만 메인 폴더에서 종속성을 삭제하여 빌드가 성공했는지 확인할 수 있습니다 (리소스 폴더).
관련 문제
- 1. 하위 디렉토리의 모든 PDF 파일을 하위 디렉토리로 이동하는 배치 파일
- 2. 디렉토리의 모든 파일을 다른 디렉토리로 이동하는 방법
- 3. 여러 파일을 다른 디렉토리로 이동하는 쉘 스크립트
- 4. 다른 디렉토리로 파일을 이동하는 것에 대해
- 5. 파일을 하위 디렉토리로 복사
- 6. .NET 라이브러리를 하위 디렉토리로 이동하는 방법은 무엇입니까?
- 7. 위의 디렉토리로 .lua로 이동하는 방법
- 8. git sparsecheckout - 다른 디렉토리로 이동하는 방법
- 9. 웹 사이트의 "루트"디렉토리로 이동하는 방법?
- 10. Node.JS를 사용하여 파일을 디렉토리로 이동하는 방법은 무엇입니까?
- 11. 파일을 Gzip하고 홈 디렉토리로 이동하는 Unix 명령
- 12. 하나의 디렉토리에서 다른 디렉토리로 파일을 이동하는 VBscript
- 13. 자식 하위 모듈을 하위 디렉토리로 이동하는 방법은 무엇입니까?
- 14. Markdown을 사용하여 하나의 디렉토리로 이동하는 방법
- 15. 디렉토리에서 가장 오래된 10 개의 파일을 다른 디렉토리로 이동하는 방법
- 16. 파일이있는 하위 폴더를 다른 디렉토리로 이동하는 방법은 무엇입니까?
- 17. 파일을 여러 폴더/하위 디렉토리로 바꾸기
- 18. CefSharp WPF 및 MVVM?
- 19. Bash : 파일을 읽고 하위 디렉토리로 이동
- 20. 파일을 여러 폴더/하위 디렉토리로 바꾸기
- 21. 하위 디렉토리의 특정 파일을 디렉토리로 이동 - python
- 22. 디렉토리에서 디렉토리로 이동하는 방법은 무엇입니까?
- 23. cefsharp 버전을 결정하는 방법
- 24. 하위 디렉토리로 리디렉션
- 25. 실패한 파일을 다른 디렉토리로 이동
- 26. 하위 디렉토리로 헤더 컴파일 및 다시 컴파일
- 27. CSS 파일을 가리키는 RewriteRule이 .htaccess 파일을 포함하는 하위 디렉토리로 이동합니다.
- 28. 웹 사이트의 하위 디렉토리로 리디렉션하는 방법
- 29. 하위 디렉토리로 .htaccess 하위 디렉토리
- 30. .htaccess를 사용하여 하위 디렉토리로 리디렉션하는 방법
매우 유용한 튜토리얼입니다. 감사합니다. 'CefLibraryHandle'정의가 누락되었지만 필요한 사용자는 누구나 여기에서 찾을 수 있습니다. https : // github.co.kr/cefsharp/CefSharp/blob/master/CefSharp/CefLibraryHandle.cs – Jhollman