2011-11-08 2 views
4

간단한 문제가 있습니다. 내 설치 프로젝트에서 dll 종속성 (탐지 된 종속성 폴더에 있음)을 제외시켜 사용자 설치 폴더에 복사하지 않도록합니다. 나는 원하지 않는 어셈블리에서 'exclude'속성을 true로 설정 한 다음 msi 파일을 작성하여이 문제를 해결했습니다. 그것은 잘 작동하고, 어셈블리는 제외됩니다. 그러나vdproj의 '탐지 된 종속성'에서 어셈블리의 exclude 속성이 어떻게 지속되지 않습니까?

, 나는 비주얼 스튜디오를 닫고 다시 경우 '제외'속성의 하나는 (내가 설정 한 내 경우 4) true로 설정된 상태로 유지됩니다. 나는 vdproj 파일을 확인하고이 같은이 4 개 라인이있다 : I 제외하고 싶었던 어셈블리의 각

"Exclude" = "11:TRUE" 
... 하나.

그래서 VS2010이 vdproj 파일의 설정을 올바르게로드하지 못하는 것 같습니다. 나는 신비화되었다. 누구나 해결 방법이 있습니까?

답변

4

종속성 분석기는 항상 자신의 로컬 복사 속성이 true로 설정되어 배포 프로젝트에 DLL을 추가 때문입니다. MSDN 문서 Troubleshooting Setup and Deployment Projects에서 "솔루션을 다시 열 때 이전에 제외 된 파일이 다시 포함되었습니다"절을 참조하십시오. Visual Studio의 로컬 복사를 사용하거나 배포 프로젝트를 사용하여 적절한 위치, 특히 복잡한 솔루션에 파일을 설치해야합니다.

+0

링크가 다른 소스에서 사망 했습니까? – TarkaDaal

1

여기 해결책을 찾아온 모든 사람들에게 적합합니다!

글쎄 나는 위에서 언급 한 것과 같은 문제가 있었지만 피하려고했던 DLL은 탐지 된 depedency (내 프로젝트 A는 C.Dll (2.0.0.0)에 종속 된 B.dll에 종속되어 있음)이지만 C.dll (2.0.0.0)을 내 MSI에서 원하지 않습니다. (C.dll (1.0.0.0)의 다른 버전과 직접적인 종속 관계가 있습니다.) DLL을 제외하려고했지만 VDProj가 프로젝트를 다시로드하고 발견 된 종속성을 다시 추가 할 때마다 종속성이 새로 고쳐지기 때문에 작동하지 않습니다.

Microsoft의 솔루션은 참조 된 DLL에 대해 "CopyLocal"속성을 false로 설정하는 것이 었습니다.이 DLL이 너무 많아서 각 프로젝트로 이동하여 업데이트하려고했습니다. 테스터 당 많은 프로젝트에 대한 코드가 사실상 바뀌기 때문에 스카이 로켓에 대한 노력). 그래서이 문제를 해결하기 위해 특정 DLL (C.Dll (1.0.0.0))을 설치 프로젝트에 수동으로 추가했습니다. 설치 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 파일 추가를 선택하십시오.

enter image description here

또한 파일이 내 경우는 bin 폴더로 이동하고, 배포 할 수있는 위치를 설정해야합니다.

enter image description here

이 파일은 (비슷한 이름을 가진) 다른 모든 감지 종속성을 재정의하고 우리가 지정한 위치에 배포 얻을.