2016-01-01 56 views
19

我正在開發一個在Mac上使用Visual Studio代碼的ASP.NET 5 Web API應用程序。我使用ASPNET_ENV環境變量手動修改我的Properties/launchSettings.json文件來設置環境Staging對所有配置文件: enter image description here在Mac上從命令行運行ASP.NET 5應用程序時使用launchSettings.json?

然而,當我在Mac的終端上運行dnx web啓動應用程序,我仍然得到Production環境: enter image description here

如果我在Mac上使用Visual Studio代碼,我可以使用launchSettings.json指定環境變量(以及環境類型)嗎?還是特定於完整的Visual Studio?

ASP.NET 5 docs suggestlaunchSettings.json可用於注入環境變量。但是,this SO discussion建議通過命令傳遞它們。

+2

根據這個答案, launchSettings.json僅由VS使用:http://stackoverflow.com/a/33374841/40925 9 –

回答

12

LaunchSettings.json完全是一個VS概念。在其他情況下,你必須配置環境變量如下命令:

對於標準的命令行中運行,使用:

set ASPNET_ENV=Development 

dnx web 

對於PowerShell中,使用:

$env:ASPNET_ENV='Development' 

dnx web 

較短版本:dnx web ASPNET_ENV=Development

+2

以上答案是正確的,但OP確實聲明他使用的是Mac。爲了將環境設置爲開發在Mac上,使用來自終端的以下內容: 出口ASPNET_ENV =發展 –

+0

當試圖設置中''project.json'部分commands'代替,你喜歡的東西:'」命令「:{」web「:」Microsoft.AspNet.Server.Kestrel --config hosting.Development.json --ASPNET_ENV Development「}'。對? – superjos

+2

環境變量「ASPNET_ENV」已過時,已被替換爲「ASPNETCORE_ENVIRONMENT」(.NET核心RC2) –

0

添加到@Chrysalis答案中,您還可以通過在命令行上傳遞所需的變量來避免與當前環境「混淆」。

裏面project.json文件,說你有具體的發展環境web-dev命令:

"commands": { 
    "web-dev": "Microsoft.AspNet.Server.Kestrel 
    --ASPNET_ENV Development --Hosting:Environment Development 
    --config hosting.Development.json", 
}, 

在這裏你可以看到這兩個ASPNET_ENVHosting:Environment設置,以及調用特定hosting.json配置。
注意:命令爲了便於閱讀而分成幾行,然後再實際粘貼到JSON文件中。

5

在Mac上,使用終端,輸入:

export ASPNETCORE_ENVIRONMENT=Development && dotnet run 

要求:

+1

或者在Windows中設置ASPNETCORE_ENVIRONMENT =發展&& DOTNET運行 - >這個工作對我來說 –

相關問題