2012-07-03 3 views
0

저는 개발자가 통합 데이터베이스 또는 SQLite 메모리 내장 데이터베이스에 대해 메소드를 실행할 수있는 기능을 제공하는 통합 테스트 도구를 개발하고 있습니다. 그러나공개 회원없이 dll을 어떻게 참조 할 수 있습니까?

namespace References { 
    internal interface IReferenceUnusedDependencies { 
     SQLiteException e { set; } // Reference System.Data.SQLite.dll 
     IMappingEngineRunner r { set; } // Reference AutoMapper.dll 
    } 
} 

, 내가 코드를 참조하는 방법을 알아낼 수 없습니다 : 실제 SQLite는 코드 중 어느 것도 내 하네스에 의해 참조되지 않기 때문에

, 나는 그 msbuild를 복사 DLL을 보장하기 위해 더미 코드를 추가해야 System.Data.SQLite.Linq.dll에서 - 포함하는 모든 클래스 및 인터페이스는 내부입니다.

어떻게 든이 참조를 만들 수 있습니까?

+0

참조를 "항상 복사"로 표시하면 공개/비공개 멤버와 아무 관련이 없습니다. –

+0

어디에서 참조를 "항상 복사"로 표시합니까? – arootbeer

+0

프로젝트 파일에 있습니다. http://msdn.microsoft.com/en-us/library/0c6xyb66.aspx –

답변

0

는 메인 프로젝트에이 어셈블리 속성을 추가

using System.Runtime.CompilerServices; 
[assembly: InternalsVisibleTo("MyTestDLLName")] 

다시 읽기 문제를, 당신은 단순히 당신의 빈에 참조 된 어셈블리를 복사해야합니까?

그렇다면 솔루션 탐색기의 항목 속성 아래에서 Visual Studio (차례로 MSBuild를 사용)에서 속성의 복사본을 선택할 수 있습니다.

참조 폴더에서 참조를 선택한 다음 로컬 복사를 선택하십시오. (다른 MSBuild 속성도 사용할 수 있습니다.)

+0

To'System.Data.SQLite.Linq'? – arootbeer

+0

그러나 어셈블리에만 적용되지는 않습니까? 제 3 자 어셈블리 인 경우 어떻게해야합니까? 같은 거래요? –

+0

@JeffMercado 예 내부 어셈블리에 명시 적으로 액세스하려는 외부 어셈블리 용입니다 – James

관련 문제