2013-09-06 3 views
2

내가 주요 프로젝트 PrismDashboard이 예외를 얻고에 따라 주요 프로젝트에 참조 된 DLL의 :PRISM : 모듈

Source\PrismDashboard\bin\Debug\PrismDashboard.vshost.exe System.Windows.Markup.XamlParseException occurred HResult=-2146233087 Message=Could not load file or assembly 'Microsoft.Expression.Interactions, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

이것은 Bootrstrapper와 셸 프로젝트입니다. Microsoft.Expression.Interactions에에 refrence을 필요로

Source\Modules\ModuleA

과 내가이 DLL이 존재하는 것을 볼 수 있습니다 : 그것은 Shell은 다른 프로젝트에서 ModuleA을 사용하고 있기 때문에 무슨 일이 일어나고 나는 오류를 컴파일받지 못했습니다

Source\Modules\ModuleA\bin\Debug

하고, 런타임 오류가 발생합니다. ModuleA보기가 셸 영역에 삽입되며이보기에는 ModuleA 프로젝트에서 참조되지만 Bootstrapper 및 셸이있는 주 프로젝트에서는 참조되지 않는 Microsoft.Expression.Interactions가 필요합니다.

내 프로젝트의 다른 프로젝트에 필요한 DLL에 대한 참조를 추가하고 싶지 않습니다. 은 ModulaA 참조하지만 점점 오류에 Embaded 상호 운용성 유형을 설정 봤어 :

Error 1 Cannot embed interop types from assembly 'c:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.0\Libraries\Microsoft.Expression.Interactions.dll' because it is missing either the 'ImportedFromTypeLibAttribute' attribute or the 'PrimaryInteropAssemblyAttribute' attribute c:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.0\Libraries\Microsoft.Expression.Interactions.dll ModuleA Error 2 Cannot embed interop types from assembly 'c:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.0\Libraries\Microsoft.Expression.Interactions.dll' because it is missing the 'GuidAttribute' attribute c:\Program Files (x86)\Microsoft SDKs\Expression\Blend.NETFramework\v4.0\Libraries\Microsoft.Expression.Interactions.dll ModuleA

답변

3

주요 응용 프로그램 모듈 A, 주위 결코를로드하기 위해 Microsoft.Expression.Interactions을 찾을 수 있어야합니다. 또한 응용 프로그램을 배포 할 때 동일한 규칙이 적용된다는 점도 명심하십시오.

셸 프로젝트에서이 어셈블리를 참조하고 싶지 않은 경우 (btw는 주 응용 프로그램의 출력 디렉터리에 복사하므로 실제로 가장 쉬운 방법입니다) 다른 옵션은 복사입니다 거기 수동으로. 빌드 후 이벤트를 사용하여 수행 할 수 있지만 그렇게하면 서로의 출력 디렉토리에 대해 알아야하기 때문에 두 프로젝트를 함께 묶어 두는 것입니다. 또 다른 방법은 모든 프로젝트를 동일한 디렉토리에 출력하는 것입니다. 꽤 큰 규모의 응용 프로그램을 위해이 도구를 사용하고 있으며 잘 작동합니다. 또한 응용 프로그램을 배포하는 것은 전체 디렉토리를 복사하는 것입니다.

+0

나는 이것을 염두에 둘 플러그 나 설정이 있기를 바랬다. 출력 설정에 대한 제안은 내 마음에 왔지만 뭔가 다른 것이있을 것이라고 기대할 수 있습니다. 컴파일 타임 오류가 아니라 런타임 오류가 발생하는 것은 실제로 위험 할 수 있습니다. – user007

관련 문제