Windows Vista에 표준 사용자로 설치해야하는 VB6 응용 프로그램이 있습니다. Visual Studio 2005를 사용하여 표준 사용자 안전한 장소 또는 폴더에 응용 프로그램을 배치 할 설치 프로젝트를 만들었습니다. 또한 사용자 응용 프로그램 데이터 폴더에 설치하고 등록 할 DLL이 있습니다. VS'05에서 내 Windows Installer를 만든 후에 msiinfo.exe를 사용하여 단어 수 등록 정보를 3 번째 비트로 뒤집어서 msi를 실행할 때 Vista에서 관리자 자격 증명을 표시하지 않도록합니다. 응용 프로그램은 dll을 사용자 응용 프로그램 데이터 폴더에 등록하려고 시도 할 때까지 아무런 문제없이 설치됩니다. 이 지점에 도달하면 dll에 대한 형식 라이브러리를 등록 할 수 없다는 오류가 발생합니다. 설치 프로그램에 사용자 폴더에 DLL을 등록 할 수있는 권한이없는 것 같습니다. 이 올바른지? 필자는 Vista가 시스템의 모든 사용자에게 영향을 미치는 항목을 업데이트하거나 변경하는 표준 사용자에 대해서만 불만을 나타 냈습니다. 어떤 아이디어? 생각? 제안?VB6을 표준 사용자로 Windows Vista에 설치
답변
을 스티브
내 제안은 가능한 경우, 기본 사용자 계정하에 실제 작업이 있다고 언급 한 ocx/dll 파일을 등록하는 대신 regfree com/manifest 파일을 사용할 수 있다는 것입니다.
당신은뿐만 아니라 당신을 위해 여기 매니페스트를 작성하는 데 사용할 수있는 훌륭한 무료 응용 프로그램입니다 : http://mmm4vb6.atom5.com/
우리는 문제없이 지금 몇 년 동안이 사용하고있다가.
편집 MMM 웹 사이트가 다운되었습니다. 작성자가 자신의 호스팅에 문제가있는 here을보고 내 위치 확인을위한 다른 위치를 제공했습니다 - download it here.
안녕하세요, Steve는 MMM에 대한 몇 가지 문제를 겪고 있습니다.이 질문은 다른 대답으로 기록되어 있습니다. 어쩌면 당신이 들러서 그 경험을 토대로 어떤 통찰력을 가지고 있는지 볼 수있는 시간이 있다면, 그는 그가 감사 할 것이라고 생각합니다. 건배. – MarkJ
DLL 등록은 모든 사용자에게 영향을 미치며 (DLL은 전역으로 등록 됨) 관리자 권한이 필요합니다. 그 주위에 방법이 없습니다.
최신 프로그래밍 환경을위한 솔루션은 DLL을 등록 할 필요가 없다는 것입니다. 그러나 vb6는 COM에 의존하기 때문에 운이 좋지 않을 것입니다.
일반적으로 나는 그의 대답에서 Joel Coehoorn이 말하는 것에 동의합니다.
그러나이 점에서 레지스트리가 어떻게 작동하는지 알면 수동으로 DLL을 HKEY_CURRENT_USER\SOFTWARE\Classes
에 수동으로 등록하려고 제안 할 수 있습니다. 기본적으로 regsvr32.exe는 HKEY_LOCAL_MACHINE\SOFTWARE\Classes
을 반복합니다.
해킹 비트이며 작동하지 않을 수도 있지만 시도해 볼 수는 있습니다.
-
MSDN에
- 관련 게시물 : http://msdn.microsoft.com/en-us/library/ms693350.aspx (MarkJ는 의견이 지적에 감사) vbforums.com에
- 관련 게시물 : http://www.vbforums.com/showthread.php?t=507228
대신 직접 DLL 파일을 수행 할 수 있습니다 등록 RegFree COM을 사용하십시오.
이 경우 응용 프로그램의 XML 매니페스트 파일이 만들어 지므로 시스템 레지스트리를 사용하는 대신 응용 프로그램 폴더에서 DLL 파일을 찾습니다.
이것은 설치 프로그램이 DLL을 등록하지 않아도 앱이 제대로 실행됨을 의미합니다.
이러한 링크는 더 많은 정보를 가지고 :
http://msdn.microsoft.com/en-us/magazine/cc188708.aspx
http://www.devx.com/vb/Article/32888/1954
당신은 무료로 당신이 필요로하는 매니페스트 파일을 만들 내 매니페스트 소프트웨어를 확인 사용할 수 있습니다
+1 UR 답안을 편집하여 OneNerd가 제안한대로 내 매니페스트를 만들 것을 제안 할 수 있습니까? http://mmm4vb6.atom5.com/ – MarkJ
RegFree Com에 대한 msdn 기사는 이렇게 말합니다. "사실 Reg의 원래 의도 -Free COM은 Visual Basic 6.0, C++ 또는 일부 언어 조합으로 작성된 것과 같은 기존의 기본 응용 프로그램을 활성화하는 것이 었습니다. " VB6 RegFree com에서 아무 것도 찾지 못했습니다 ... 어떤 링크? –
VB6에서 My Manifest가 작동합니다. OneNerd의 대답을 참조하십시오. – MarkJ
- 레지스트리가 필요없는 COM : MakeMyManifest은 잘 알려져 있습니다. VB6 프로젝트의 매니페스트를 만들기위한 자동 도구입니다. 직접 시도하지 않았습니다.
- DirectCOM은 레지스트리가 필요없는 COM의 대안입니다. 팬들도 있고, 다시 시도하지 않았습니다.
편집 MMM 웹 사이트가 다운되었습니다. 작성자가 자신의 호스팅에 문제가있는 here을보고 내 위치 확인을위한 다른 위치를 제공했습니다 - download it here.
레지스트리가없는 COM에 대한 매니페스트를 만드는 반자동 기법이 있습니다. Visual Studio 2008을 사용하여 매니페스트를 만들 수 있습니다 (Visual Basic Express Edition과 같은 무료 버전을 사용할 수 있음). 그런 다음 매니페스트를 VB6에서 사용할 수 있도록 손으로 두 번 편집합니다. 단계별 지침은이 MSDN 문서의 this section을 참조하십시오. 나머지 ClickOnce에 대한 기사는 무시하십시오.
Unattended Make My Manifest은 자동 빌드에서 매니페스트를 생성하는 데 사용할 수있는 MMM을 리메이크 한 것입니다. 스크립트 파일을 사용하여 종속 된 COM 구성 요소를 추가합니다.
- 1. Windows Vista에 cc.net 설치
- 2. Windows Vista에 PHP, Apache 2.2.10 설치
- 3. Wamp/Windows Vista에 Zend Debugger 설치
- 4. Emacs - Vista에 설치
- 5. '글로벌'데이터를 표준 사용자로 저장 하시겠습니까?
- 6. SQL Server 2005를 Vista에 설치, COM + 오류
- 7. 사용자로 Windows 서비스를 설치하지 못했습니다.
- 8. winhttp.dll은 표준 Windows 파일입니까?
- 9. 표준 사용자로 파일을 만들거나 쓸 수 없습니다.
- 10. ntdll.dll은 windows xp 및 windows vista에 표준으로 제공됩니까?
- 11. Windows Vista에 .NET 3.5 SP1없이 .NET 2.0 SP2를 설치하려면 어떻게합니까?
- 12. Vista에 ADO 설치하기
- 13. UnauthorizedAccessException : Vista에 들어가기
- 14. 니모닉 용 Windows 표준
- 15. Windows 7 및 Vista에 응용 프로그램 데이터를 저장하는 위치
- 16. WiX ServiceInstall - 현재 Windows 사용자로 실행되도록 서비스 설정
- 17. Vista에 RubyGems 설치시 문제가 발생했습니다
- 18. Windows 서버에 Windows 서비스 설치
- 19. Windows 7에서 Visual Studio 2002, 2003 및 VB6을 나란히 실행하십시오.
- 20. 관리자 권한 및 시작 동작이있는 Vista에 서비스를 설치해야합니다.
- 21. Windows Forms의 표준 Windows 메뉴 모음
- 22. Vista에 AppData \ Roaming \ Folder가 없습니다.
- 23. Windows 서비스의 원격 설치
- 24. Windows XP에서 오이 설치
- 25. 설치 프로그램은 Windows 서비스
- 26. Windows 서비스 설치
- 27. Windows 7에 TurboGears 설치
- 28. Windows 서비스 설치/제거
- 29. Windows 설치 프로그램 만들기
- 30. Windows 서비스 설치 관리자
"regfreecom"에 태그를 추가하는 자유를 얻었습니다. 문제의 정답이 될 것 같아요. 나는 스티븐이 아직 시도하지 않았기 때문에 조금 일찍 일어날지도 모른다는 것을 깨닫는다. – MarkJ
@ 마크 J : 나는 정답이 될 것이라고 생각하는 것에 태그를 달아서는 안된다. 이것은 무엇을위한 태그가 아니며, 이것이 답을위한 것입니다. Reg-free COM은 .NET 어셈블리에서 COM 참조에만 작동하는 것으로 보입니다. – Tomalak
@Tomalak. 의견에 감사드립니다. 실제로 reg-free COM은 VB6 클라이언트에서 사용 된 COM 참조와도 작동합니다. 예를 들어 MakeMyManifest 도구는 VB6 클라이언트에서만 작동합니다. 또는 내 대답에 언급 된 기사를 읽어보십시오. – MarkJ