我正在使用EPiServer
和MSBuild
为公共aspnet_regiis
网站的构建流程添加加密功能。大多数情况下,它进展顺利,但在加密web.config中的episerver
标记时却没有。
命令:
aspnet_regiis -pef "episerver" "C:\Path\to\my\site" -prov "RsaProvider"
在我的开发机器上(安装了EPiServer)它运行没有问题,但是在我的构建机器上(没有安装它),我明白了:
Could not load file or assembly 'EPiServer.Configuration, Version=6.1.379.0, Culture=neutral, PublicKeyToken=8fe83dea738b45b7' or one of its dependencies. The system cannot find the file specified.
其他标记(如connectionStrings
)在构建服务器上正确加密,因此所有密钥和访问都已到位。
我的猜测是,这是因为构建服务器上没有安装EPiServer,但是真的有必要安装EPiServer才能加密web.config吗?我认为加密只会读取web.config并加密所选标签中的文本?
有关如何让我的构建服务器加密web.config中的episerver
标记的任何提示都将不胜感激。
答案 0 :(得分:1)
当您安装EPiServer时,它会在GAC中添加许多dll,这就是它在本地计算机上运行而不在构建计算机上运行的原因。
web.config中的部分是一个自定义配置部分(在此处详细了解它们(How to: Create Custom Configuration Sections Using ConfigurationSection)在EPiServer.Configuration.dll中定义。您可以将其添加为项目的参考(设置Copy)从本地到真实,或者您可以在您的构建机器上安装EPiServer。我已经完成了后者,因为构建机器不会阻塞任何EPiServer dll,无论您是否已将它们添加到您的项目中。