Visual Studio 2008에서 참조로 프로젝트 루트에 WinScp.dll을 추가했는데 바로 노란색 아이콘이 나타납니다. 컴파일시 : 형식 또는 네임 스페이스 이름 '으로 WinSCP는'을 (를) 찾을 수 없습니다Visual Studio에서 DLL과 동일한 이름의 실행 파일을 추가했습니다.
- (당신은 using 지시문 또는 어셈블리 참조가?)
- 해결 된 파일은 나쁜 이미지를, 아니 메타 데이터, 또는이있다 그렇지 않으면 접근 할 수 없다. 파일 또는 어셈블리 'E : ... \ winscp.exe'또는 해당 종속성 중 하나를로드 할 수 없습니다. 모듈에 어셈블리 매니페스트가 포함될 것으로 예상됩니다.
한 시간의 좌절감 때문에 프로젝트 파일 (프로젝트 루트에도 있음)로 WinSCP.exe를 제거하면 모든 것이 잘 컴파일된다는 것을 알았습니다. 이상한 !!!!
문제는 출력 디렉토리에 WinSCP.dll과 WinSCP.exe가 모두 필요하다는 것입니다. 나는 무엇을해야합니까?
EDIT : 파일의 이름을 바꾸거나 경로를 변경하는 등의 해결 방법이 있다는 것을 알고 있습니다. 처음에는 exe의 이름을 변경했습니다. 이제는 내 코드에서 이름이 바뀐 exe를 지정하지 않아도되므로 dll (thanks @Michael)의 이름을 바꿉니다.
하지만 처음에는 왜 문제가 있습니까? WinSCP.dll과 WinSCP.exe는 서로 다른 두 파일입니다. 이것은 Visual Studio의 버그입니까, 아니면 이해할 수없는 dll/exe의 복잡한 것입니까?
아마도 WinScp.dll은 .NET 어셈블리이지만 WinScp.exe는 아닌가요? – Snixtor
[WinSCP .NET Assembly] (http://winscp.net/eng/docs/library) WinSCP.dll은 기본적으로 명령 줄 인수와 함께 WinSCP.exe를 사용하기위한 프로세스 만들기를 처리하는 래퍼입니다. 기본적으로 .dll은 동일한 디렉토리에서 실행 파일을 찾지 만 호출 코드에서 변경할 수 있습니다 (현재 해결 방법은 WinSCP.exe를 WinSCP_.exe로 변경하고 적절한 변경을 수행하는 것이지만 더 나은 방법이 있어야합니다). –
아마 다른 곳에있는'WinSCP.exe' 파일을 저장할 수 있고 post-build 단계를 사용하여 출력 디렉토리에 그것을 복사 할 수 있습니까? –