1

我在我的項目中有多個環境 - 一個開發環境,3個測試環境,1個集成環境和最終生產環境。發佈環境特定appsettings.ENV.json只適用於各自的環境

因此,我們決定去環境的具體appsettings.ENVNAME.json

正如this answer提到我們下面project.json -

"publishOptions": { 
    "include": [ 
    ... 
    "appsettings.json", 
    "appsettings.*.json", 
    ... 
    ] 
} 

通過這樣做,我們發佈appsetting.PROD.json到即使在不同的測試環境中,這也是錯誤的。

我的理解是,我們可以控制的AppSettings文件加載在啓動喜歡這個 -

.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true); 

但在此情況下,其他的文件可用。 (錯誤地改變ENV名親人後,將開始回升等環境的細節)

現在(根據我們的審計小組),我們需要發佈特定appsettings.ENVNAME.json只有對應的環境環境。

如何使用project.json實現此目的?我們是否需要爲此編寫單獨的腳本?解決這種情況的最佳方法是什麼?

+0

_Someone錯誤地更改env名稱,它會開始撿起其他environment_的細節與參數一樣好_Someone錯誤地發佈了錯誤的appsettings.envname.json文件,它將開始撿起其他environment_的細節,都是容易出現相同類型的手動錯誤。您可以在您的示例中使您的環境文件成爲強制文件而不是可選文件。如果有人將其更改爲不存在的環境名稱,則會發生錯誤。問題是,不是你的軟件包應該決定哪個是環境模式,而是你的服務器部署在 – Tseng

+0

即使我強制要求,其他環境文件仍然是我的發佈文件夾的一部分。審計小組不會批准這一點。在這裏,我們的意圖是基於環境名稱自動發佈過程。 – Vishal26

+0

您談論瞭如此嚴格的審覈流程,然而,開發人員可以直接發佈到舞臺和製作?爲什麼不將它發佈到一個單獨的位置,然後將所需的文件複製到所需的位置? –

回答

0

出於安全原因(打算或錯誤),我(親自)避免在存儲庫或用於開發的計算機中包含分段/生產配置文件。這些文件可能包含敏感信息,如您所說,如果使用或修改了錯誤的配置文件,則可能會發生嚴重錯誤。

此外,用於生產的配置文件不會變化太大,因此您可以在需要時手動輕鬆修改它。總而言之,我只在每個環境中使用一個appsettings.json。在我看來,這樣更安全,更容易。