From cb9e36d4ea26ff770ca93f12b0d3c8680c6dba5a Mon Sep 17 00:00:00 2001 From: Wenyi Luo Date: Tue, 14 Jan 2020 17:41:34 +0800 Subject: [PATCH 1/5] fix powershell version limit --- .../CSharp/Scripts/build_runtime.ps1 | 20 ++----------------- .../packages/client/src/store/action/bot.ts | 2 +- .../models/connector/csharpBotConnector.ts | 4 ++-- 3 files changed, 5 insertions(+), 21 deletions(-) diff --git a/BotProject/Templates/CSharp/Scripts/build_runtime.ps1 b/BotProject/Templates/CSharp/Scripts/build_runtime.ps1 index dc6cd87d9a..0579956909 100644 --- a/BotProject/Templates/CSharp/Scripts/build_runtime.ps1 +++ b/BotProject/Templates/CSharp/Scripts/build_runtime.ps1 @@ -1,25 +1,9 @@ -Param( - [object] $config, - [string] $customSettingFolder, - [string] $luisAuthroingKey, - [SecureString] $appPassword, - [string] $projFolder = $(Join-Path $(Get-Location) BotProject CSharp) -) - -if ($PSVersionTable.PSVersion.Major -lt 6){ - Write-Host "! Powershell 6 is required, current version is $($PSVersionTable.PSVersion.Major), please refer following documents for help." - Write-Host "For Windows - https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-windows?view=powershell-6" - Write-Host "For Mac - https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-6" - Break -} - if ((dotnet --version) -lt 3) { - Write-Host "! dotnet core 3.0 is required, please refer following documents for help." - Write-Host "https://dotnet.microsoft.com/download/dotnet-core/3.0" + throw "! dotnet core 3.0 is required, please refer following documents for help. https://dotnet.microsoft.com/download/dotnet-core/3.0" Break } # This command need dotnet core more than 3.0 dotnet user-secrets init -dotnet build \ No newline at end of file +dotnet build diff --git a/Composer/packages/client/src/store/action/bot.ts b/Composer/packages/client/src/store/action/bot.ts index e35dd7f6e5..1dacccf9af 100644 --- a/Composer/packages/client/src/store/action/bot.ts +++ b/Composer/packages/client/src/store/action/bot.ts @@ -28,7 +28,7 @@ export const connectBot: ActionCreator = async (store, settings) => { status: 'unConnected', }, }); - throw new Error(err.response.data.message); + throw new Error(err.response?.data?.message || err.message); } }; diff --git a/Composer/packages/server/src/models/connector/csharpBotConnector.ts b/Composer/packages/server/src/models/connector/csharpBotConnector.ts index d6d825e605..0fce0de41a 100644 --- a/Composer/packages/server/src/models/connector/csharpBotConnector.ts +++ b/Composer/packages/server/src/models/connector/csharpBotConnector.ts @@ -63,7 +63,7 @@ export class CSharpBotConnector implements IBotConnector { let shell = 'sh'; let script = './Scripts/build_runtime.sh'; if (process.platform === 'win32') { - shell = 'pwsh'; + shell = 'powershell'; script = './Scripts/build_runtime.ps1'; } const build = spawn(`${shell}`, [`${script}`], { @@ -177,7 +177,7 @@ export class CSharpBotConnector implements IBotConnector { } catch (err) { this.stop(); this.status = BotStatus.NotConnected; - throw new Error('Error while syncing bot runtime.'); + throw err; } }; From c5cee443b0307fb83e372a439772ff683e0ca150 Mon Sep 17 00:00:00 2001 From: Wenyi Luo Date: Tue, 14 Jan 2020 23:04:00 +0800 Subject: [PATCH 2/5] fix powershell policy restriction --- .../server/src/models/connector/csharpBotConnector.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Composer/packages/server/src/models/connector/csharpBotConnector.ts b/Composer/packages/server/src/models/connector/csharpBotConnector.ts index 0fce0de41a..a382124a9f 100644 --- a/Composer/packages/server/src/models/connector/csharpBotConnector.ts +++ b/Composer/packages/server/src/models/connector/csharpBotConnector.ts @@ -61,12 +61,12 @@ export class CSharpBotConnector implements IBotConnector { // build bot runtime return new Promise((resolve, reject) => { let shell = 'sh'; - let script = './Scripts/build_runtime.sh'; + let script = ['./Scripts/build_runtime.sh']; if (process.platform === 'win32') { shell = 'powershell'; - script = './Scripts/build_runtime.ps1'; + script = ['./Scripts/build_runtime.ps1', '-executionpolicy', 'bypass']; } - const build = spawn(`${shell}`, [`${script}`], { + const build = spawn(`${shell}`, script, { cwd: dir, stdio: ['pipe', 'pipe', 'pipe'], }); From e12d772b65c5030d2cf53fa8ad811df71d2b8120 Mon Sep 17 00:00:00 2001 From: Wenyi Luo Date: Wed, 15 Jan 2020 11:15:39 +0800 Subject: [PATCH 3/5] bypass powershell signed restriction --- .../packages/server/src/models/connector/csharpBotConnector.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Composer/packages/server/src/models/connector/csharpBotConnector.ts b/Composer/packages/server/src/models/connector/csharpBotConnector.ts index a382124a9f..f31f481d92 100644 --- a/Composer/packages/server/src/models/connector/csharpBotConnector.ts +++ b/Composer/packages/server/src/models/connector/csharpBotConnector.ts @@ -64,7 +64,7 @@ export class CSharpBotConnector implements IBotConnector { let script = ['./Scripts/build_runtime.sh']; if (process.platform === 'win32') { shell = 'powershell'; - script = ['./Scripts/build_runtime.ps1', '-executionpolicy', 'bypass']; + script = ['-executionpolicy', 'bypass', '-file', './Scripts/build_runtime.ps1']; } const build = spawn(`${shell}`, script, { cwd: dir, From 649aa25621bfa9e6d4d538b341e071d18819cc0a Mon Sep 17 00:00:00 2001 From: Wenyi Luo Date: Wed, 15 Jan 2020 14:59:19 +0800 Subject: [PATCH 4/5] fix error msg was cutted during build --- .../server/src/models/connector/csharpBotConnector.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Composer/packages/server/src/models/connector/csharpBotConnector.ts b/Composer/packages/server/src/models/connector/csharpBotConnector.ts index f31f481d92..220d7d16ab 100644 --- a/Composer/packages/server/src/models/connector/csharpBotConnector.ts +++ b/Composer/packages/server/src/models/connector/csharpBotConnector.ts @@ -70,6 +70,7 @@ export class CSharpBotConnector implements IBotConnector { cwd: dir, stdio: ['pipe', 'pipe', 'pipe'], }); + let errorMsg = ''; buildDebug('building bot runtime: %d', build.pid); build.stdout && build.stdout.on('data', function(str) { @@ -77,10 +78,14 @@ export class CSharpBotConnector implements IBotConnector { }); build.stderr && build.stderr.on('data', function(err) { - reject(err.toString()); + errorMsg = errorMsg + err.toString(); }); build.on('exit', function(code) { - resolve(code); + if (code !== 0) { + reject(errorMsg); + } else { + resolve(code); + } }); }); }; From 6f194aa99b95b57e4db35ee991b0208670b0bdbe Mon Sep 17 00:00:00 2001 From: Wenyi Luo Date: Wed, 15 Jan 2020 22:11:47 +0800 Subject: [PATCH 5/5] fix port occupied error --- .../packages/server/src/models/connector/csharpBotConnector.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/Composer/packages/server/src/models/connector/csharpBotConnector.ts b/Composer/packages/server/src/models/connector/csharpBotConnector.ts index 220d7d16ab..860f54bb5b 100644 --- a/Composer/packages/server/src/models/connector/csharpBotConnector.ts +++ b/Composer/packages/server/src/models/connector/csharpBotConnector.ts @@ -167,6 +167,7 @@ export class CSharpBotConnector implements IBotConnector { connect = async (_: BotEnvironments, __: string) => { const originPort = urlParse(this.endpoint).port; const port = await getPort({ host: 'localhost', port: parseInt(originPort || '3979') }); + this.endpoint = `http://localhost:${port}`; return `http://localhost:${port}/api/messages`; };