2013-02-21 26 views
0

我正在使用MSBuildaspnet_regiis爲我的構建過程中的公開EPiServer網站添加加密。大多數情況下,它是順利的,但不是在web.config中加密episerver標記時。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標記的任何提示將不勝感激。

回答

1

當您安裝EPiServer時,它會在GAC中添加一些dll,所以這就是爲什麼它可以在本地機器上運行,而不是在構建機器上運行。

web.config中的部分是一個自定義配置部分(在EPiServer.Configuration.dll中定義的更多關於它們的地方(How to: Create Custom Configuration Sections Using ConfigurationSection))可以添加它作爲項目的參考(將Copy Local設置爲true ),或者你可以簡單地在你的機器上安裝EPiServer,我已經完成了後者,因爲構建機器不會窒息任何EPiServer dll,不管你是否已經將它們添加到你的項目中

+0

好,這證實了我的初步想法,謝謝!我已經對我的所有EPiServer dll:s都有Copy Local = true,所以我會考慮在構建服務器上安裝EPi。 – 2013-02-22 13:53:03

+0

雖然我們決定採用另一種方式來解決它,最好的解決辦法就像我們上面試過的那樣。:-) – 2013-03-25 15:59:47