2009-07-26 110 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無法定位)。您可以提供User Defined Assembly Load Paths,在試圖解析引用的程序集時,Dotfuscator將另外查看。

構建服務器上需要引用的程序集才能成功模糊混淆,最好的方法是確保引用的程序集與輸入程序集位於同一目錄中或使用用戶定義的程序集加載路徑。

此外,版本4.5.1200中的新功能可以讓您首次搜索用戶定義的裝配加載路徑,而不是最後搜索它們的默認值。

+1

就像我說的,引用的組件是溶液中的其它項目。當我使用Visual Studio進行編譯時,它們通常會自動複製到輸入程序集的同一個文件夾中。但是,使用Team Build進行編譯時,他們似乎不在那裏。我也不能使用UserDefined路徑,因爲我不知道路徑 - TeamBuild每次編譯都會改變它.... – SaguiItay 2009-07-27 08:48:51

0

C:\ Program Files文件\的MSBuild \先發制人\ Dotfuscator的\ 4.0 \ PreEmptive.Dotfuscator.Targets

該組件必須位於同一臺服務器上生成代理機上。

簡單地說,假設TFSServer是數據層的機器名(含源文件)以及構建機器然後Dotfuscator的目標文件需要訪問它。

要找** TFSServer機Dotfuscator的安裝和路徑將成爲其進入非常久遠關聯的目標文件。**