2009-07-26 6 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がさらに表示されます。

参照アセンブリはDotfuscatorのビルドサーバーで正常に不明瞭化する必要があり、参照アセンブリが入力アセンブリと同じディレクトリにあることを確認するか、ユーザー定義アセンブリロードパスを使用するのが最善の方法です。

また、バージョン4.5.1200の新機能では、ユーザ定義のアセンブリロードパスをデフォルトで検索するのではなく、最初に検索することができます。

+1

私が言ったように、参照されるアセンブリは、溶液中の他のプロジェクトです。 Visual Studioを使用してコンパイルすると、通常、入力アセンブリの同じフォルダに自動的にコピーされます。しかし、Team Buildを使用してコンパイルすると、そこに存在しないように見えます。私はパスを知らないのでUserDefinedパスを使用することはできません - TeamBuildはコンパイルごとにそれを変更します。 – SaguiItay

0

C:\プログラムファイル\ MSBuildの\プリエンプティブ\ Dotfuscator \ 4.0 \ PreEmptive.Dotfuscator.Targets

このアセンブリは、あなたのビルドエージェントマシンと同じサーバー上に存在しなければなりません。簡単な言葉で

、TFSServerはあなた(ソースファイルを含む)データ層のマシン名などビルドマシンで、その後dotfuscator対象のファイルがそれにアクセスする必要がありを想定しました。

は単に** TFSServerマシン上dotfuscatorをインストールし、パスが関連付けられているターゲットファイルを伴って含むそれにアクセスできるようになります。**

関連する問題