2010-04-13 2 views
4

그래서 여기에 문제가 있습니다. 내가 일하는 회사에서 사용할 StyleCop 플러그인 어셈블리를 작성 중입니다. 따라서이 어셈블리는 Microsoft.StyleCop.CSharp.dll을 참조해야합니다 (예 : Microsoft.StyleCop.CSharp.dll).강하게 이름 붙여진 어셈블리를 느슨하게 참조하려면 C# 어셈블리가 필요합니다.

이 문제를 해결하고 내 그룹의 개발자에게 전달하면 동일한 버전의 StyleCop dll (현재 4.3.3.0)이 있어야합니다. 그렇지 않으면로드에 실패합니다.

내 애드온 규칙을 더 독립적으로 만드는 가장 좋은 방법은 무엇입니까? GAC에 이러한 하위 StyleCop DLL 4.3.3.0 버전을 설치해야합니까? 어셈블리 (응용 프로그램과 비교하여)에서 정책 파일을 사용할 수 있습니까?

아, 그리고 주요 문제 중 하나는 가능한 경우 모든 버전의 StyleCop 클라이언트가 설치되었거나 (또는 ​​적어도 4.3.3.0 이상) 작동하고 싶습니다.

미리 감사드립니다.

답변

5

예. 다른 개발자 용으로 동일한 버전을 설치하면됩니다. 그렇지 않으면 StyleCop의 변경으로 인해 예측할 수없는 런타임 오류가 발생할 수 있습니다. 아마도 그것이 버전 번호를 증가시키는 데 방해가되었던 이유 일 것입니다.

이 작업을 원하지 않으면 app.config 파일에서 다른 어셈블리 바인딩을 구성 할 수 있습니다. 설정에서 런타임에 사용할 실제 버전 번호가 필요합니다. 그리고 예, 이것은 정책을 통해 수행 될 수도 있습니다. 하지만 다시 말하지만, 올바른 DLL을 처음부터 포함하는 것이 더 효과적이라고 생각합니다.

+0

그래, 문제는 어디서 발생했는지. GAC에서 참조하는 DLL을 설치하면 StyleCop이 중단됩니다. StyleCop이 다른 종속성이 있는지 찾기 시작하기 때문입니다. 이상한. 그래서 StyleCop이 버전을 올릴 때 사용자를 제한하여 StyleCop 4.3.3.0에 새 버전을 출시 할 것입니다. –

1

프로젝트에서 StyleCop 참조의 속성으로 이동하십시오. "Specific Version"속성을 false로 설정하십시오.

+0

이것은 컴파일 타임 연결에만 영향을줍니다. –

관련 문제