2010-03-22 4 views
6

여러 가지 이유로 나는 내 프로젝트에서 강력한 이름의 (서명 된) 어셈블리를 사용하지 않을 것입니다. 그러나 프로젝트 중 하나는 셰어 포인트 웹 파트에서 참조하므로 서명해야합니다.C# - 당신은 강력한 어셈블리에 "약한"어셈블리 참조를 만들 수 있습니까?

이 어셈블리를 서명 한 것은 가능하지만 다른 프로젝트에서 참조 할 때는 강력하지 않은 참조를 사용하는 것이 가능합니다. 이것은 나에게 나머지 코드에 대해 서명되지 않은 어셈블리를 갖는 이점을 제공하지만 여전히 셰어 포인트에 의해로드되도록 허용 할 것이다.

답변

3

이 작업을 수행하는 가장 간단한 방법은 두 가지 프로젝트 구성을 사용하는 것입니다. 하나는 강력한 이름의 어셈블리를 만들고 다른 하나는 그렇지 않은 프로젝트 구성입니다. 물론 어셈블리를 작성하고 참조하는 방법에주의해야하지만, 이는 서로 상충되는 요구 사항이있는 영역과 관련됩니다.

+0

어떻게 Visual Studio에서 "두 개의 다른 프로젝트 구성"을 설정 하시겠습니까? –

+0

@PavelChuchuva : http://msdn.microsoft.com/en-us/library/kkz9kefa.aspx –

+0

프로젝트 속성의 서명 탭에서 구성 드롭 다운을 사용할 수 없습니다 : http://i.imgur.com/vwZKy. png –

0

이가 OP하지만 나는 오픈 ID가없는 로그인 그래서 나는 나 자신으로 회신 할 수 없다고 생각한다.

두 답변에 감사드립니다. 나는 어느 쪽이 일했을 것이지만 상황은 조금 더 복잡하게 밝혀졌다라고 생각한다. 다른 사람들이 관심을 가지기 위해서 여기에 내 연구 결과를 문서화했습니다. 차례 참조 어셈블리 B의 사실 셰어 참조에서

어셈블리 A와 조립 A I가 문제없이 서명되지 않은,하지만 난에 서명하려면 다음, 나는을 변경해야 모두 조립 A와 B를 구축 할 수 있습니다

프로젝트 자체에서 어셈블리 B의 서명 된 버전을 참조 할 수 있습니다.

이 작업을 수행하는 방법이 있었지만 같은 이름의 DLL 집합이 가치가없는 경우 DLL 충돌 및 구성 제어 문제가 발생할 수 있다고 판단했습니다. 혼전.

우리는 모든 어셈블리에서이 어셈블리를 모두 서명하기로 결정했습니다. 필요한 경우 최소 코드 만 서명 된 어셈블리에 있는지 확인하여 다른 어셈블리에 코드를 추가하여 변경 가능성을 줄였습니다.