2012-01-19 2 views
0

클래스 라이브러리 프로젝트가 있습니다. "gacutil/i [dll 경로]"명령으로 GAC에 프로젝트에서 생성 한이 DLL을 설치합니다. 이 dll은 Windows 응용 프로그램에서 사용됩니다. Windows 응용 프로그램이 실행되면 dll의 함수 및 속성에 성공적으로 액세스합니다. 이제 dll을 약간 변경했습니다. GAC에서 원래 dll을 제거한 다음 필요한 dll을 사용하여 최신 dll을 설치합니다. 이제 Windows 응용 프로그램이이 DLL을 사용하면 dll의 새로운 변경 사항이 응용 프로그램에 반영되지 않습니다. 새 변경 사항은 GAC에 새 dll을 설치했을 때 응용 프로그램에 반영되어야합니다. 이름, 버전 및 공개 키 토큰은 두 DLL에서 동일합니다. 나는 이전 dll을 제거하고 GAC에 새 dll을 설치 했으므로 문제가되지 않을 것이라고 생각합니다.dll을 변경하면이 DLL을 사용하는 응용 프로그램에 반영되지 않습니다.

내가 뭔가 잘못하고있는거야 ?? 해결책을 제안하십시오. 난 당신이 버전 당신의 DLL이, 다음의 업데이트되는 확인하기 위해 응용 프로그램에 버전을 인쇄 디버깅을 위해 제안

감사와 안부, Mayur 마하 잔

+3

어떤 변경을 수행 했습니까? 앱을 다시 컴파일하지 않으면 볼 수없는 상상할 수있는 몇 가지 변경 사항 (예 : 상수 값)이 있습니다. 당신이 "윈도우 애플리케이션"이라고 말했을 때 왜 이것이 asp.net이라는 태그가 붙어 있는지는 알 수 없습니다. –

+0

Windows 서비스를 다시 시작 했습니까? 변경 사항은 Windows 앱/서비스를 중지하고 다시 시작한 경우에만 반영됩니다. 그것은 dll을 메모리에 유지합니다. –

+0

당신의 제안이 .. 일할 수 있다고 생각합니다! 나는 그것이 메모리에 dll을 유지하고 있다고 생각합니다. 제발 Windows 응용 프로그램/서비스를 다시 시작하는 방법을 제안 해주십시오. 나는 이것을 프로그램 적으로 다시 시작하고 싶지 않다. (내 앱을 통해서가 아니라는 뜻이다.) 그러니 수동으로 제안하십시오. – Mayur

답변

1

. System.Reflection 네임 스페이스를 포함하면 코드는 다음과 같이 실행됩니다.

Assembly assembly = Assembly.LoadFrom("unknown.dll"); 
label.Text = assembly.GetName().Version.ToString(); 
+0

감사합니다 벤,하지만 내 dll을 버전 싶지 않아. 이 문제를 해결할 다른 방법이 필요합니다. 버전 관리 dll은이 문제에 대한 해결책이 아닙니다. 왜냐하면 내가 변경 사항을 1000 번 수행하면 개발하는 동안 1000 가지 버전을 만들어야하기 때문입니다. 나는이 dll이 메모리에 저장 될 것이라고 생각한다. 이 문제를 해결할 수있는 방법이 있습니까? – Mayur