2009-07-26 5 views
4

Dotfuscator 프로젝트 및 설치 프로젝트를 포함한 모든 프로젝트가 포함 된 솔루션을 만들었습니다. Dotfuscator 프로젝트 중 일부는 참조에 영향을주지 않고 일부 어셈블리 만 난독 화합니다. Visual Studio에서 빌드 할 때이 방법이 효과적입니다. 그러나 그것은 난독 프로젝트의 일부가 아닌,팀 빌드 및 Dotfuscator

C:\Program Files\MSBuild\PreEmptive\Dotfuscator\4.0\PreEmptive.Dotfuscator.Targets(20,3): error : Couldn't load external type because its assembly can't be found:

외부 어셈블리는 어셈블리에 의해 참조 난독 화되고있다 : 나는 팀 빌드를 실행할 때, 나는 다음과 같은 오류가 발생합니다.

답변

3

참조 된 어셈블리는 Dotfuscator 프로젝트의 일부일 필요는 없지만 Dotfuscator에서 읽을 수 있어야합니다. 참조 된 어셈블리가 워크 스테이션의 입력 어셈블리와 동일한 디렉터리에 있거나 워크 스테이션 경로 또는 GAC에있는 것으로 의심됩니다. 참조 된 어셈블리가 빌드 서버에 없거나 Dotfuscator에서 찾을 수없는 경우 일 수 있습니다. 참조 된 어셈블리를 해결하려고 시도 할 때 Dotfuscator가 추가적으로 표시되는 User Defined Assembly Load Paths을 제공 할 수 있습니다.

참조 된 어셈블리는 Dotfuscator의 빌드 서버에서 성공적으로 난독 화해야하며 가장 좋은 방법은 참조 된 어셈블리가 입력 어셈블리와 동일한 디렉터리에 있는지 또는 사용자 정의 어셈블리로드 경로를 사용하는지 확인하는 것입니다.

또한 4.5.1200의 새로운 기능을 사용하면 사용자 정의 어셈블리로드 경로를 처음 검색 할 때 기본적으로 검색하지 않고 처음으로 검색 할 수 있습니다.

+1

내가 말했듯이, 참조 된 어셈블리 솔루션에서 다른 프로젝트이다. 일반적으로 Visual Studio를 사용하여 컴파일 할 때 입력 어셈블리의 동일한 폴더에 자동으로 복사됩니다. 그러나 Team Build를 사용하여 컴파일 할 때 거기에있는 것처럼 보이지 않습니다. TeamBuild가 모든 컴파일을 변경하기 때문에 경로를 모르기 때문에 UserDefined 경로도 사용할 수 없습니다. – SaguiItay

0

C : \ 프로그램 파일 \ MSBuild를 \ 선제 \ Dotfuscator \ 4.0 \ PreEmptive.Dotfuscator.Targets

이 조립이 빌드 에이전트 기계와 같은 서버에 거짓말을해야합니다. TFSServer 가정 간단한 단어에서

, 당신의 데이터 계층 기계 (소스 파일을 포함하는) 이름뿐만 아니라 빌드 다음 dotfuscator 대상 파일이 그것에 접근 할 필요가 기계.입니다

는 단순히 ** TFSServer 기계에 dotfuscator를 설치하고 경로는 관련 대상 파일 alongwith 그것에 접근이 될 것입니다. **

관련 문제