2009-10-09 3 views
1

솔루션의 다른 프로젝트를 참조하는 사용자 지정 PowerShell 스냅인을 개발하고 있습니다.
([지침] [1]에 따라) 스냅인을 디버깅하려고하면 어셈블리가로드되지 않고 "cmdlet"이 "파일 또는 어셈블리를로드 할 수 없습니다 ..."라는 메시지와 함께 실패합니다.PowerShell 스냅인에서 외부 어셈블리 참조

어셈블리를 찾는 방법에 대해 PowerShell에 지시하거나 스냅인에 필요한 어셈블리의 위치를 ​​지정하는 방법은 무엇입니까?

최소한 개발 중에는 GAC에 어셈블리를 등록하지 않는 것이 좋습니다.

+0

멋진 답변 - 도움이되었습니다. 유용한 정보입니다. –

+0

질문 만 표시하도록 질문을 다시 편집 할 수 있습니까? 그런 다음 답을 실제 답변으로 시스템에 배치하십시오. 자신의 질문에 대답하는 것이 좋습니다. 이것은 stackoverflow 시스템을 사용하는 가장 좋은 방법입니다. 이렇게하면 다른 사람들이 당신의 대답에 투표 할 수 있습니다. – halr9000

+0

@ halr9000 : 완료. 나는 당신이 답변들 사이에 해결책을 게시하는 것이 옳다고 생각한다. 나는 투표에 대해 모른다. (사람들은 그 질문에 투표 할 수있다.) –

답변

1

정확히 어떤 동작을하는지 확신 할 수 없지만 런타임에서 문제가있는 어셈블리를 정확히 찾고자 할 때 fuslogvw을 사용하려고합니다. 그러면 빌드를 올바른 위치에 복사하는 방법에 대한 단서가 생깁니다. Scott Hanselman의 This post은 매우 유용하며 this은 공식 문서입니다.

해결책을 찾으면 일반적인 시나리오 여야하므로 답변을 추가하십시오.

1

솔루션 내 문제가 아니라 특이

내가 64 비트 서버 시스템에서 개발하고 있어요로서, (내 질문에 대한 의견 중 하나에 의해 제안 여기 게시),하지만 난을 게시하도록하겠습니다 해결책은 누군가 다른 사람을 도울 수있었습니다.

fuslogvw을 제안대로 사용하면 아래 파일 machine.config을 사용하여 종속 어셈블리를 검색 한 다음 바인딩에 실패했습니다. "디버깅하지 않고 시작"을 사용하여 프로젝트를 시작하는 대신 파일을 C:\Windows\Microsoft.NET\Framework 아래로 가져 왔습니다 (끝에 64이 있음을 알 수 있음).

이 문제는 이미지 형식 때문일 수 있으며 종속 어셈블리는 x86에서 CPU 대상으로 컴파일되고 있다고 생각했습니다. 나는 그것을 "Any CPU"로 바꾸었고 이제는 어셈블리가 올바르게로드되었습니다.