Managed C++ 프로젝트를 참조하는 C# GUI 응용 프로그램이 있습니다.이 프로젝트에는 7 개의 네이티브 C++ DLL이 필요합니다. 나는이 7 개의 DLL을 최종 프로젝트 출력에 복사하는 가장 깨끗한 방법을 찾고있다.
복사 출력 디렉토리 ==가 복사 항상 ".NET 프로젝트에서 네이티브 DLL을 복사하는 가장 깨끗한 방법
으로
빌드 작업 =="콘텐츠 "
이 지정하는 C#을 응용 프로그램에 모든 DLL을 추가 작동 무엇이렇게하면 프로젝트의 기본 폴더가 어떤 경우에 참조 된 프로젝트의 요구 사항이고 프로젝트 자체가 아닌 DLL의 엉망이됩니다.
위의 설정과 함께 "필요한 DLL이"라는 이름의 폴더에이 DLL을 추가
- 작동하지 않습니다 무엇3210
. 출력에 같은 이름의 폴더에 복사하여 잘못된 위치에있게합니다. 나는 출력 디렉토리를 지정하는 방법을 볼 수 없다.
- 임베디드 리소스 : C# P/Invoke에서 참조하는 DLL을 포함 리소스로 추가 할 수 있으며 DLL은 최종 라이브러리 내에 포함됩니다. Managed C++에서이 가능성을 보지 못했으며 참조 체인과 함께 작동하는지 확신 할 수 없습니다.
- Managed C++ 프로젝트의 내용으로 DLL 추가. 파일은 출력 디렉토리에 복사되지 않습니다.
이 경우 가장 좋은 해결책은 무엇입니까? 가능한 경우 Managed C++ 프로젝트가 자체 DLL 요구 사항을 처리 할 수 있도록하는 것이 좋으며 여러 응용 프로그램에서 프로젝트를 사용하지 못하도록하는 것이 바람직합니다.
깨끗한 프로젝트가 진행되는 한, 프로젝트의 하위 폴더에 모든 코드 파일을 삽입하고 루트에서 DLL을 사용하여 첫 번째 솔루션을 작동시키는 것이 더 좋습니다.
솔루션 : 조셉에서 빌드 후 제안을 사용
다음 명령은 "필요한 DLL이"폴더를 사용하는 트릭을 수행합니다.XCOPY "$ (PROJECTDIR) 필요한 DLL이 *. *", "$ (TARGETDIR)"/ Q/Y
/Q 출력에서 개별 파일을 숨기고/Y 프롬프트를 덮어 억제 .
어떤 이유로 든 포스트 빌드 이벤트를 생각조차하지 못했습니다. 이것은 나를 위해 꽤 잘 작동하고, 나는 질문에 사용한 정확한 포스트 빌드를 게시했습니다. 감사. –