团队建设和Dotfuscator
我创建了一个解决方案,其中包含我的所有项目,包括 Dotfuscator 项目和安装项目。 一些 Dotfuscator 项目仅混淆某些程序集,而不影响它们的任何引用。 从 Visual Studio 构建时,这非常有效。 但是,当我运行团队构建时,出现以下错误:
C:\程序 文件\MSBuild\PreEmptive\Dotfuscator\4.0\PreEmptive.Dotfuscator.Targets(20,3): 错误:无法加载外部类型,因为其程序集无法 发现:
外部程序集是被混淆的程序集的引用,但它不是混淆项目的一部分。
I've created a solution that includes all my projects, including the Dotfuscator projects, and setup projects.
Some of the Dotfuscator projects are obfuscating only some assemblies, without affecting any of their references.
When building from Visual Studio, this works great. However, when I run a team build, I get the following error:
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:
The external assembly is references by the assembly being obfuscated, however it is not part of the obfuscation project.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
引用的程序集不一定是 Dotfuscator 项目的一部分,但确实需要可供 Dotfuscator 读取。 我怀疑引用的程序集与工作站上的输入程序集位于同一目录中、在工作站的路径中或在 GAC 中。 引用的程序集可能不在您的构建服务器上(或者 Dotfuscator 无法定位)。 您可以提供用户定义的程序集加载路径,其中 Dotfuscator 将另外提供尝试解析引用的程序集时查看。
构建服务器上需要引用的程序集,Dotfuscator 才能成功混淆,最好的方法是确保引用的程序集与输入程序集位于同一目录中,或者使用用户定义的程序集加载路径。
此外,在 4.5.1200 版本中,您可以首先搜索用户定义的程序集加载路径,而不是默认最后搜索它们。
The referenced assembly does not have to be part of the Dotfuscator project but it does need to be available for Dotfuscator to read. I suspect that the referenced assembly is either in the same directory as your input assemblies on your workstation, in the path of your workstation or in the GAC. It is probable that the referenced assembly is not on your build server (or is not locatable by Dotfuscator). You can provide User Defined Assembly Load Paths where Dotfuscator will additionally look when attempting to resolve referenced assemblies.
The referenced assembly will be required on the build server for Dotfuscator to successfully obfuscate and the best way is to either ensure the referenced assembly is in the same directory as the input assemblies or to use a User Defined Assembly Load Path.
Also, new in version 4.5.1200 you can have your User Defined Assembly Load Path's searched first rather than the default of searching them last.
C:\Program Files\MSBuild\PreEmptive\Dotfuscator\4.0\PreEmptive.Dotfuscator.Targets
此程序集必须与构建代理计算机位于同一服务器上。
简而言之,假设TFSServer是您的数据层机器名称(包含源文件)以及构建机器,那么 dotfuscator 目标文件需要对其进行访问。
只需在 **TFSServer 计算机上安装 dotfuscator,即可访问该路径以及关联的目标文件。**
C:\Program Files\MSBuild\PreEmptive\Dotfuscator\4.0\PreEmptive.Dotfuscator.Targets
This assembly must lie on the same server as your Build agent Machine.
In simple words, assuming the TFSServer is your Data Tier MAchine Name (Containing Source files) as well as Build Machine then dotfuscator target files need to accessible to it.
Simply install dotfuscator on the **TFSServer Machine and the path will become accessible to it alongwith the associated target files.**