![](/img/trans.png)
[英]How to deploy asp.net core 2.1 preview app to azure?? how do i install the new sdk in azure
[英]How to install .net core on azure batch node?
我正在嘗試使用啟動任務在 azure 批處理節點上安裝 .net core 2.2 嗎? 我嘗試在啟動任務中使用的命令如下:
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Runtime dotnet -Version 2.2.5"
啟動任務失敗。 此外,如果我在節點上手動運行腳本,它不會安裝 .net core sdk。
有什么幫助嗎?
這可能是老問題,但我會寫出對我有用的內容。 正如 Mike 嘗試做的那樣,我還使用啟動任務和 powershell 腳本在 Azure Batch 節點上安裝 .net 核心。
我驗證過,dot net core 確實安裝了,但在不同的位置,並且路徑沒有導出到環境變量,而只被當前進程使用。 這就是它實際上不起作用的原因
所以我在上面的 Start Task 代碼中做了 2 個更改
請參閱下面的代碼使這件事起作用
powershell "if(!([Environment]::GetEnvironmentVariable('Path', 'Machine') -split ';' -contains \"$Env:ProgramFiles\dotnet\\\")) {[Environment]::SetEnvironmentVariable('Path', \"$([Environment]::GetEnvironmentVariable('Path', 'Machine'));$Env:ProgramFiles\dotnet\\\",'Machine');}"
powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -useb 'https://dot.net/v1/dotnet-install.ps1'))) -Channel LTS -InstallDir \"$Env:ProgramFiles\dotnet\\\""
在此之后,我可以在機器上運行我的 .net 核心代碼
古爾所說的是正確的。 您可以在啟動任務中通過resourceFiles安裝安裝文件。 從那里,您可以簡單地設置starttask命令行以首先指向啟動任務工作目錄(將在該目錄中下載文件)並運行setup命令。
此處進一步說明: https : //docs.microsoft.com/zh-cn/azure/batch/batch-api-basics#start-task
您可以在此處找到批處理環境變量: https : //docs.microsoft.com/zh-cn/azure/batch/batch-compute-node-environment-variables 。 建議您使用它們。 如果使用這些目錄的顯式路徑,則Microsoft可以隨時更改它的顯式路徑,這將在重新引導節點,重新映像節點或將新節點分配給池時引入其他問題。
示例: https : //docs.microsoft.com/zh-cn/azure/batch/batch-compute-node-environment-variables#command-line-expansion-of-environment-variables
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.