2012-09-20 2 views
2

설치 쉴드 한정판으로 (IIS 용 웹) 설치 프로그램 패키지를 만들려고합니다. 프로젝트 기본 출력 및 콘텐츠 파일과 디버그 기호를 설치 프로그램에 추가하면 설치 프로그램이 빌드되고 올바르게 설치되지만 이제는 문제가 발생합니다.설치 방패 참조 된 프로젝트 DLL

두 개의 기본 프로젝트 참조 프로젝트 DLL 중 두 개가 제대로 빌드되지 않았습니다. 해당 dll의 이전 버전이 빌드되어 설치 프로그램에 복사됩니다. 설치 프로그램을 만들기 전에 프로젝트를 변경했기 때문에 내 웹 사이트가 작동하지 않습니다.

해당 DLL을 프로젝트에서 수동으로 설치된 폴더로 복사하면 작동합니다. 내 질문입니다 : 설치를 빌드 할 때 Installshield는 해당 DLL을 어디에서 가져 옵니까? 프로젝트를 다시 빌드하고 새로운 (방금 빌드 한) 참조 된 dll을 추가해서는 안됩니까?

또한 Windows의 Microsoft.net 폴더에서 임시 파일을 삭제하면 해당 설정이 올바르게 빌드됩니다. 즉, 해당 시간에 dll이 빌드됨을 의미합니다.

내가 VS 2012 및 2012

답변

1

나는에 DLL을 포함했습니다 IShield 한정판을 사용하고 '의존성'내가 주 프로젝트에 사용하고있는 모든 프로젝트를 표시 한에서 설치 프로젝트에 .. 내 주 프로젝트의 bin \ release 폴더를 installshield 2012 LE 프로젝트의 '파일'섹션에있는 [INSTALLDIR]에 추가하십시오. HTH

+0

좋아,하지만 내가을 Inetpub의 wwwroot 폴더에서 bin 폴더에 원하는 DLL (IIS의 기본 폴더)를받지 않습니다.. 당신이 말하고있는 것은 웹 사이트가 아닌 다른 유형의 응용 프로그램에서도 작동 할 것이라고 말하고 있습니다. 그렇지 않으면 작동하지 않았습니다 .... 또한 installshield는 설치 관리자 패키지를 만들 때 구성 관리자에 추가 한 모든 프로젝트를 빌드해야합니다. 다른 해결책이 있다면 .... 해당 파일 버전이 GAC 브라우저에 설치되어 있는지 확인합니다. 컴퓨터의 dll 버전이 아닙니다. – adi1989

+1

InstallShield는 svn에서 이전 버전의 DLL을 가져옵니다. 수동 복사에 매우 성가신 일입니다. – adi1989

+0

어셈블리를 수정하고 SVN에 커밋 한 후 설치 프로그램을 다시 빌드하면 dll의 마지막 버전이 설치 프로그램에 포함되었습니다. 이상한 점은 디버그 구성을 사용한 설정에는 아무런 문제가 없다는 것입니다. InstallShield 2012 LE.hope를 사용하고 있습니다.이 문제에 대한 좋은 수정/설명이 있습니다. –

1

오늘 같은 문제가있었습니다. 내 .NET 프로젝트에는 프로젝트가 참조한 DLL이있었습니다. InstallShield는 이전 버전의 DLL로 MSI를 구축하고있었습니다.

Temporary ASP.NET Files 폴더를 지우면 문제가 해결되었습니다. InstallShield에이 문제가 발생한 이유를 진단 할 수 없었습니다. 여기

내가 지워 특별히하는 경로입니다 :

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files 
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files 
+0

예, 첫 번째 게시물에서 나는 그 파일을 지우면 작동하지만, 다른 누군가가 이런 종류의 문제를 겪고 있다는 것을 "행복하게"보았습니다 ... 아직 해결 방법을 찾지 못했습니다 ... – adi1989

+0

이것은 나를 운전 해 왔습니다 몇 달 동안 미친! 수동으로 파일을 복사했습니다. Sooooooo 더 나은 솔루션을 가지고 기뻐. 나는 단지 InstallSheild가 그렇게 둔한 것이 아니길 바래! –

+1

임시 ASP.NET 파일을 지웠고 문제가 해결되지 않았습니다. – epalm