7

를 작동하지 않습니다.InternalsVisibleTo 속성은

[assembly: InternalsVisibleTo("Stuff.Test.Support, PublicKey="0024000004800000940000000302000000240000525341310004000001000100d158cd56401c3d90b52ca1a5f273d608c3ce12aaa21385b0f4ad7dc1b747e45ee1f1771c104c52cb4da1b587ae38b6d36fa1d8e8f14003c42f700bc62ef2ec04b231c5d930e4bc3691aa1ef7b6713926316d4be1165ede086e94190b44edd4ad0d024230ae6eb9deb728b00d71d1d468b20a9bb78f242bd6c41e640c2e5c0cd5")] 

액세스 할 내부 항목이있는 Properties/AssemblyInfo.cs 파일에 있습니다. 확인하기 전에 작동 중입니다. 하지만 Team Foundation IDK WTF에서 병합 한 후 잘못되었지만 AssemblyInfo.cs에서 속성을 볼 수는 없지만 파일에서 아무것도 변경되지 않았 음을 확인했지만 여전히 "innaccessable due to its protection level." 오류가 발생합니다. (감마 방사선? 태양 흑점? 작동하지 않는 코드에 코드를 작업 형식에 설정을 몇하는 버그를 훈련 작은 악마 격언 웃음) 난 그냥 반사를 사용하여 개별 인스턴스를 추가하는 시도

...

Assembly Core = Assembly.LoadFile("C:\Stuff.Internal.Core\bin\Debug\Stuff.Internal.Core.dll"); 

Object AssmWithIdentifier = Core.CreateInstance("AssemblyWithIdentifer", false); 

내가 시도 이게 내가 얻을 'Stuff.Internal.AssemblyWithIdentifer' is inaccessible due to protection level.

그렇지 않으면 내가 내부 물건과 관련이있는 모든 것을 주석 처리하면 내 프로젝트가 잘 컴파일됩니다. 내가 두 번

레드 게이트 리플렉터

내 "한 PublicKey"을 확인하고 또한에 가능한 접근 방법 방법하지만 난 내부 아무것도 인스턴스화 할 수 없습니다하려고 아무리 privateObjects를 사용하여 시도했다.

나는 새로운 프로젝트를 추가하기를 원했다. 어떤 참조하고 실제로 컴파일 했는데도 새로운 프로젝트를 만들고 "Stuff.Test.Support"프로젝트에 모든 것을 추가하여 참조를 포함시켰다. 나는이 같은 오류를 얻을 컴파일하려고하면 등을하고, 나는 액세스하고자하는 프로젝트 점에서 AssemblyInfo.cs에 해당을 추가하지만 "innaccessable due to its protection level."

편집 : 나는 내가 언급하는 것을 잊지 않았다 어셈블리를 전역 적으로 관리하는 sharedAssembly.cs를 사용하고이 질문의 시작 부분에 표시된 assembly: InternalsVisibleTo 특성과 비슷한 방식으로 설정된 여러 특성이 있습니다 . Strong Named assemblies가 내 예제에서 눈에 띄지 않는 경우에도 사용하고 있습니다.

+2

어쩌면 프로젝트에서 워크 플로 정의를 제거해야합니다. 시도해보십시오. – Will

+0

OMG가 작동합니다. 어쩌면 당신은 대답으로 그것을 내려 놓아야합니다. 그래서 당신은 실제로 그것에 대한 믿음을 얻을 수 있습니다. – Terrance

답변

4

워크 플로 정의은 불일치의 원인입니다. 아직 이유를 알아 내려고 아직도 노력하고 있습니다 .....
누군가가 저에게 +1을받는 이유를 설명하는 무언가에 대한 링크를 제공 할 수 있다면.

+2

해결하기 위해 무엇을 했습니까? –

+0

프로젝트에서 모든 워크 플로 정의를 제거했습니다. 가장 좋은 대답은 아니지만 지금은 효과가 있습니다. 현재 Microsoft에 버그 보고서가 있습니다. 그리고 링크는 https://connect.microsoft.com/VisualStudio/feedback/details/588710/internalsvisibleto-fails-when-mixed-with-wf4-0-activity-definitions-and-custom-activities입니다. – Terrance

+0

워크 플로를 찾는 방법 정의 ??? – RouR

2

1) InternalsVisibleTo가 올바르게 설정된 경우 '친구'에서 인스턴스를 생성 할 때 리플렉션이 필요하지 않으며 ctor 's 등을 직접 사용할 수 있습니다. VS IDE가 내부 프로젝트가 대상 프로젝트에 실제로 표시되는지 여부에 대한 빠른 피드백을 제공 할 수 있도록이 경로로 이동합니다.

2) 나중에 발생한 오류 메시지에 따라 InternalsVisibleTo ("Stuff.Test.Support")를 사용해 보셨습니까?

+0

1) 현재 작동하지 않기 때문에 InternalsVisibleTo를 사용하는 대신 리플렉션을 사용하려고했습니다. 나는 현재 반성과 내가 놓친 것이 있는지를보고있다. 2) 현재 강력한 이름의 어셈블리를 사용하고 있으므로 오류가 발생합니다. 친구 어셈블리 참조 'Stuff.Tests.Support'가 잘못되었습니다. 강력한 이름의 서명 된 어셈블리는 InternalsVisibleTo 선언에 공개 키를 지정해야합니다. \t 죄송합니다. 제 설정에 대해 더 많은 정보를 공개하도록 제 질문을 수정했습니다. 어쩌면 그것은 당신을 더 잘 도울 수 있습니다. – Terrance