团队构建和Dotfuscator

4
我创建了一个解决方案,其中包括所有我的项目,包括Dotfuscator项目和安装项目。其中一些Dotfuscator项目仅混淆一些程序集,而不影响它们的任何引用。从Visual Studio构建时,这很好用。然而,当我运行团队构建时,出现以下错误:
C:\Program Files\MSBuild\PreEmptive\Dotfuscator\4.0\PreEmptive.Dotfuscator.Targets(20,3): error : 由于找不到其程序集,因此无法加载外部类型:
外部程序集是由正在混淆的程序集引用的,但它不是混淆项目的一部分。
2个回答

3
引用的程序集不一定是 Dotfuscator 项目的一部分,但需要对 Dotfuscator 可读。我怀疑引用的程序集要么在您的工作站上输入程序集的同一目录中,要么在您的工作站路径中,或者在 GAC 中。引用的程序集可能不在您的构建服务器上(或者无法被 Dotfuscator 定位)。您可以提供用户定义的程序集加载路径,Dotfuscator 将在尝试解析引用程序集时额外查找其中的内容。
构建服务器需要引用的程序集才能成功混淆,最好的方法是确保引用的程序集与输入程序集在同一目录中,或使用用户定义的程序集加载路径。
另外,在版本 4.5.1200 中,您可以首先搜索您的用户定义的程序集加载路径,而不是默认情况下最后搜索它们。

1
就像我所说的那样,引用的程序集是解决方案中的其他项目。当我使用Visual Studio编译时,它们通常会自动复制到输入程序集的同一文件夹中。然而,当使用Team Build编译时,它们似乎不在那里。我也无法使用用户定义的路径,因为我不知道路径 - TeamBuild每次编译都会更改它... - SaguiItay

0

C:\Program Files\MSBuild\PreEmptive\Dotfuscator\4.0\PreEmptive.Dotfuscator.Targets

这个程序集必须和你的构建代理机器位于同一台服务器上。

简单来说,假设TFSServer是你的数据层机器名称(包含源文件)和构建机器,则dotfuscator目标文件需要对其进行访问。

只需在**TFSServer机器上安装dotfuscator,路径将会与相关目标文件一起变为可访问的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接