Visual Studio에서 프로젝트에 하나의 참조를 추가 할 때 속성 창에 옵션 Embed Inteop Types
이 있습니다. True
또는로 설정해야 False
합니까? 차이점이 뭐야?
많은 프로젝트가 있기 때문에 그중 일부는 참조가로 설정되고 False
다른 프로젝트는로 설정되어 True
완전히 엉망입니다. 그리고 bulid 서버에도 동일한 경고가 있습니다.
우리 모두 변경할 계획 그래서 Embed Inteop Types
에 False
, 우리는 어떤 위험을 얻을 것?
답변
이 옵션은 interop을 위해 매우 큰 PIA (기본 Interop 어셈블리)를 배포 할 필요를 없애기 위해 도입되었습니다.
관리되지 않는 어셈블리와 통신 할 수 있도록 사용되는 관리 브리징 코드를 포함하기 만하면되지만 모든 것을 포함하는 대신 실제로 코드에서 사용하는 내용 만 생성합니다.
Scott Hanselman의 블로그 게시물에서 이에 대한 자세한 내용과 기타 VS 개선 사항을 여기에서 확인하십시오 .
권장 여부는이 기능을 사용할 필요가 없기 때문에 확실하지 않습니다. 빠른 웹 검색은 몇 가지 리드를 생성합니다.
이들을 모두 거짓으로 전환 할 수있는 유일한 위험은 PIA 파일에 대한 배포 문제와 해당 파일 중 일부가 큰 경우 더 큰 배포입니다.
답변
false로 설정하면 디버거를 사용하여 항목의 값을 볼 수 있습니다. true로 설정했을 때 오류가 발생했습니다. 개체로 캐스팅하거나 ‘Embed Interop Types’속성을 true로 변경하는 것이 좋습니다.