0

我正在使用和为公共EPiServer站点的构建过程添加加密。大多数情况下,它进展顺利,但在 web.config 中加密标签时却不行。MSBuildaspnet_regiisepiserver

命令:

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 并加密所选标签中的文本?

任何关于如何让我的构建服务器加密episerverweb.config 中的标签的提示将不胜感激。

4

1 回答 1

1

当您安装 EPiServer 时,它会在 GAC 中添加许多 dll,这就是它在您的本地机器上而不是在构建机器上工作的原因。

web.config 中的部分是在 EPiServer.Configuration.dll 中定义的自定义配置部分(在此处阅读有关它们的更多信息(如何:使用 ConfigurationSection 创建自定义配置部分)。您可以将其添加为对项目的引用(设置将本地复制为true),或者您可以简单地在构建机器上安装EPiServer。我已经完成了后者,因为无论您是否将它们添加到您的项目中,构建机器都不会阻塞任何EPiServer dll。

于 2013-02-22T09:57:44.673 回答