diff --git a/Changelog.md b/Changelog.md
index c045b90..260da01 100644
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,5 +1,20 @@
# Not released
+# 9.31.3
+
+ElectronNET.CLI:
+
+* New Feature: Set a description of the app in `electron.manifest.json` (thanks [BurtsevC](https://github.com/BurtsevC)) [\#433](https://github.com/ElectronNET/Electron.NET/pull/433)
+* New Feature: Set a target for the start command (thanks [gabecook](https://github.com/gabecook)) [\#463](https://github.com/ElectronNET/Electron.NET/pull/463)
+* New Feature: `electronize init` support for F# projects (thanks [kojo12228](https://github.com/kojo12228)) [\#457](https://github.com/ElectronNET/Electron.NET/pull/457)
+* New Feature: Linux support for the buildAll.sh (thanks [duncanawoods](https://github.com/duncanawoods)) [\#465](https://github.com/ElectronNET/Electron.NET/pull/465)
+* Fixed bug: ERR_UNKNOWN_URL_SCHEME by intercepting file:// protocol (thanks [duncanawoods](https://github.com/duncanawoods)) [\#467](https://github.com/ElectronNET/Electron.NET/pull/467)
+
+ElectronNET.API:
+
+* New Feature: Native Electron 9.2.0 support, but not all new features (we search contributors)
+* Fixed bug: Set default WebPreferences.DefaultFontSize (thanks [duncanawoods](https://github.com/duncanawoods)) [\#468](https://github.com/ElectronNET/Electron.NET/pull/468)
+
# Released
# 9.31.2
diff --git a/ElectronNET.API/Entities/WebPreferences.cs b/ElectronNET.API/Entities/WebPreferences.cs
index 031c78c..7d3ceff 100644
--- a/ElectronNET.API/Entities/WebPreferences.cs
+++ b/ElectronNET.API/Entities/WebPreferences.cs
@@ -142,7 +142,7 @@ namespace ElectronNET.API.Entities
///
/// Defaults to 16.
///
- public int DefaultFontSize { get; set; }
+ public int DefaultFontSize { get; set; } = 16;
///
/// Defaults to 13.
diff --git a/ElectronNET.CLI/Commands/AddCommand.cs b/ElectronNET.CLI/Commands/AddCommand.cs
index 8168d6d..cbfb0dd 100644
--- a/ElectronNET.CLI/Commands/AddCommand.cs
+++ b/ElectronNET.CLI/Commands/AddCommand.cs
@@ -75,13 +75,16 @@ namespace ElectronNET.CLI.Commands
// ToDo: Not sure if this runs under linux/macos
ProcessHelper.CmdExecute(@"npx tsc -p ../../", targetFilePath);
- // search .csproj
- Console.WriteLine($"Search your .csproj to add configure CopyToPublishDirectory to 'Never'");
- var projectFile = Directory.EnumerateFiles(currentDirectory, "*.csproj", SearchOption.TopDirectoryOnly).FirstOrDefault();
+ // search .csproj or .fsproj (.csproj has higher precedence)
+ Console.WriteLine($"Search your .csproj/.fsproj to add configure CopyToPublishDirectory to 'Never'");
+ var projectFile = Directory.EnumerateFiles(currentDirectory, "*.csproj", SearchOption.TopDirectoryOnly)
+ .Union(Directory.EnumerateFiles(currentDirectory, "*.fsproj", SearchOption.TopDirectoryOnly))
+ .FirstOrDefault();
- Console.WriteLine($"Found your .csproj: {projectFile} - check for existing CopyToPublishDirectory setting or update it.");
+ var extension = Path.GetExtension(projectFile);
+ Console.WriteLine($"Found your {extension}: {projectFile} - check for existing CopyToPublishDirectory setting or update it.");
- if (!EditCsProj(projectFile)) return false;
+ if (!EditProjectFile(projectFile)) return false;
Console.WriteLine($"Everything done - happy electronizing with your custom npm packages!");
@@ -90,7 +93,7 @@ namespace ElectronNET.CLI.Commands
}
// ToDo: Cleanup this copy/past code.
- private static bool EditCsProj(string projectFile)
+ private static bool EditProjectFile(string projectFile)
{
using (var stream = File.Open(projectFile, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
@@ -128,7 +131,7 @@ namespace ElectronNET.CLI.Commands
}
- Console.WriteLine($"Publish setting added in csproj!");
+ Console.WriteLine($"Publish setting added in csproj/fsproj!");
return true;
}
diff --git a/ElectronNET.CLI/Commands/BuildCommand.cs b/ElectronNET.CLI/Commands/BuildCommand.cs
index de76724..61ffeee 100644
--- a/ElectronNET.CLI/Commands/BuildCommand.cs
+++ b/ElectronNET.CLI/Commands/BuildCommand.cs
@@ -186,7 +186,7 @@ namespace ElectronNET.CLI.Commands
ProcessHelper.CmdExecute($"node build-helper.js " + manifestFileName, tempPath);
Console.WriteLine($"Package Electron App for Platform {platformInfo.ElectronPackerPlatform}...");
- ProcessHelper.CmdExecute($"npx electron-builder --config=./bin/electron-builder.json --{platformInfo.ElectronPackerPlatform} --{electronArch} -c.electronVersion=9.0.5 {electronParams}", tempPath);
+ ProcessHelper.CmdExecute($"npx electron-builder --config=./bin/electron-builder.json --{platformInfo.ElectronPackerPlatform} --{electronArch} -c.electronVersion=9.2.0 {electronParams}", tempPath);
Console.WriteLine("... done");
diff --git a/ElectronNET.CLI/Commands/InitCommand.cs b/ElectronNET.CLI/Commands/InitCommand.cs
index b0b96b5..c253920 100644
--- a/ElectronNET.CLI/Commands/InitCommand.cs
+++ b/ElectronNET.CLI/Commands/InitCommand.cs
@@ -70,19 +70,22 @@ namespace ElectronNET.CLI.Commands
// Deploy config file
EmbeddedFileHelper.DeployEmbeddedFileToTargetFile(currentDirectory, DefaultConfigFileName, ConfigName);
- // search .csproj
- Console.WriteLine($"Search your .csproj to add the needed {ConfigName}...");
- var projectFile = Directory.EnumerateFiles(currentDirectory, "*.csproj", SearchOption.TopDirectoryOnly).FirstOrDefault();
+ // search .csproj/.fsproj (.csproj has higher precedence)
+ Console.WriteLine($"Search your .csproj/fsproj to add the needed {ConfigName}...");
+ var projectFile = Directory.EnumerateFiles(currentDirectory, "*.csproj", SearchOption.TopDirectoryOnly)
+ .Union(Directory.EnumerateFiles(currentDirectory, "*.fsproj", SearchOption.TopDirectoryOnly))
+ .FirstOrDefault();
- // update config file with the name of the csproj
- // ToDo: If the csproj name != application name, this will fail
+ // update config file with the name of the csproj/fsproj
+ // ToDo: If the csproj/fsproj name != application name, this will fail
string text = File.ReadAllText(targetFilePath);
text = text.Replace("{{executable}}", Path.GetFileNameWithoutExtension(projectFile));
File.WriteAllText(targetFilePath, text);
- Console.WriteLine($"Found your .csproj: {projectFile} - check for existing config or update it.");
+ var extension = Path.GetExtension(projectFile);
+ Console.WriteLine($"Found your {extension}: {projectFile} - check for existing config or update it.");
- if (!EditCsProj(projectFile)) return false;
+ if (!EditProjectFile(projectFile)) return false;
// search launchSettings.json
Console.WriteLine($"Search your .launchSettings to add our electron debug profile...");
@@ -158,7 +161,7 @@ namespace ElectronNET.CLI.Commands
}
}
- private static bool EditCsProj(string projectFile)
+ private static bool EditProjectFile(string projectFile)
{
using (var stream = File.Open(projectFile, FileMode.OpenOrCreate, FileAccess.ReadWrite))
{
@@ -174,11 +177,11 @@ namespace ElectronNET.CLI.Commands
if (xmlDocument.ToString().Contains($"Content Update=\"{ConfigName}\""))
{
- Console.WriteLine($"{ConfigName} already in csproj.");
+ Console.WriteLine($"{ConfigName} already in csproj/fsproj.");
return false;
}
- Console.WriteLine($"{ConfigName} will be added to csproj.");
+ Console.WriteLine($"{ConfigName} will be added to csproj/fsproj.");
string itemGroupXmlString = "" +
"" +
@@ -204,7 +207,7 @@ namespace ElectronNET.CLI.Commands
}
- Console.WriteLine($"{ConfigName} added in csproj!");
+ Console.WriteLine($"{ConfigName} added in csproj/fsproj!");
return true;
}
}
diff --git a/ElectronNET.CLI/Commands/StartElectronCommand.cs b/ElectronNET.CLI/Commands/StartElectronCommand.cs
index 565af41..90bf2da 100644
--- a/ElectronNET.CLI/Commands/StartElectronCommand.cs
+++ b/ElectronNET.CLI/Commands/StartElectronCommand.cs
@@ -28,6 +28,7 @@ namespace ElectronNET.CLI.Commands
private string _clearCache = "clear-cache";
private string _paramPublishReadyToRun = "PublishReadyToRun";
private string _paramDotNetConfig = "dotnet-configuration";
+ private string _paramTarget = "target";
public Task ExecuteAsync()
{
@@ -59,8 +60,6 @@ namespace ElectronNET.CLI.Commands
Directory.CreateDirectory(tempPath);
}
- var platformInfo = GetTargetPlatformInformation.Do(string.Empty, string.Empty);
-
string tempBinPath = Path.Combine(tempPath, "bin");
var resultCode = 0;
@@ -74,6 +73,21 @@ namespace ElectronNET.CLI.Commands
publishReadyToRun += "true";
}
+ // If target is specified as a command line argument, use it.
+ // Format is the same as the build command.
+ // If target is not specified, autodetect it.
+ var platformInfo = GetTargetPlatformInformation.Do(string.Empty, string.Empty);
+ if (parser.Arguments.ContainsKey(_paramTarget))
+ {
+ var desiredPlatform = parser.Arguments[_paramTarget][0];
+ string specifiedFromCustom = string.Empty;
+ if (desiredPlatform == "custom" && parser.Arguments[_paramTarget].Length > 1)
+ {
+ specifiedFromCustom = parser.Arguments[_paramTarget][1];
+ }
+ platformInfo = GetTargetPlatformInformation.Do(desiredPlatform, specifiedFromCustom);
+ }
+
string configuration = "Debug";
if (parser.Arguments.ContainsKey(_paramDotNetConfig))
{
diff --git a/ElectronNET.Host/ElectronHostHook/connector.js b/ElectronNET.Host/ElectronHostHook/connector.js
index 5e5a0e8..6873400 100644
--- a/ElectronNET.Host/ElectronHostHook/connector.js
+++ b/ElectronNET.Host/ElectronHostHook/connector.js
@@ -1,6 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.Connector = void 0;
class Connector {
constructor(socket,
// @ts-ignore
diff --git a/ElectronNET.Host/ElectronHostHook/connector.js.map b/ElectronNET.Host/ElectronHostHook/connector.js.map
index be84b69..06a767a 100644
--- a/ElectronNET.Host/ElectronHostHook/connector.js.map
+++ b/ElectronNET.Host/ElectronHostHook/connector.js.map
@@ -1 +1 @@
-{"version":3,"file":"connector.js","sourceRoot":"","sources":["connector.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IAClB,YAAoB,MAAuB;IACvC,aAAa;IACN,GAAiB;QAFR,WAAM,GAAN,MAAM,CAAiB;QAEhC,QAAG,GAAH,GAAG,CAAc;IAAI,CAAC;IAEjC,EAAE,CAAC,GAAW,EAAE,cAAwB;QACpC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACnC,MAAM,EAAE,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;YAE9B,IAAI;gBACA,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC7B,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;qBACjD;gBACL,CAAC,CAAC,CAAC;aACN;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;aACtE;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AApBD,8BAoBC"}
\ No newline at end of file
+{"version":3,"file":"connector.js","sourceRoot":"","sources":["connector.ts"],"names":[],"mappings":";;AAAA,MAAa,SAAS;IAClB,YAAoB,MAAuB;IACvC,aAAa;IACN,GAAiB;QAFR,WAAM,GAAN,MAAM,CAAiB;QAEhC,QAAG,GAAH,GAAG,CAAc;IAAI,CAAC;IAEjC,EAAE,CAAC,GAAW,EAAE,cAAwB;QACpC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE;YACnC,MAAM,EAAE,GAAW,IAAI,CAAC,GAAG,EAAE,CAAC;YAE9B,IAAI;gBACA,cAAc,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE;oBAC7B,IAAI,IAAI,EAAE;wBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;qBACjD;gBACL,CAAC,CAAC,CAAC;aACN;YAAC,OAAO,KAAK,EAAE;gBACZ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,QAAQ,EAAE,EAAE,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;aACtE;QACL,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AApBD,8BAoBC"}
\ No newline at end of file
diff --git a/ElectronNET.Host/ElectronHostHook/index.js b/ElectronNET.Host/ElectronHostHook/index.js
index 813f7a1..05a0931 100644
--- a/ElectronNET.Host/ElectronHostHook/index.js
+++ b/ElectronNET.Host/ElectronHostHook/index.js
@@ -1,6 +1,5 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
-exports.HookService = void 0;
const connector_1 = require("./connector");
class HookService extends connector_1.Connector {
constructor(socket, app) {
diff --git a/ElectronNET.Host/ElectronHostHook/index.js.map b/ElectronNET.Host/ElectronHostHook/index.js.map
index 868dd90..40e3a0f 100644
--- a/ElectronNET.Host/ElectronHostHook/index.js.map
+++ b/ElectronNET.Host/ElectronHostHook/index.js.map
@@ -1 +1 @@
-{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;AAEA,2CAAwC;AAExC,MAAa,WAAY,SAAQ,qBAAS;IACtC,YAAY,MAAuB,EAAS,GAAiB;QACzD,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QADqB,QAAG,GAAH,GAAG,CAAc;IAE7D,CAAC;IAED,WAAW;QACP,8CAA8C;IAClD,CAAC;CACJ;AARD,kCAQC"}
\ No newline at end of file
+{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;AAEA,2CAAwC;AAExC,MAAa,WAAY,SAAQ,qBAAS;IACtC,YAAY,MAAuB,EAAS,GAAiB;QACzD,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QADqB,QAAG,GAAH,GAAG,CAAc;IAE7D,CAAC;IAED,WAAW;QACP,8CAA8C;IAClD,CAAC;CACJ;AARD,kCAQC"}
\ No newline at end of file
diff --git a/ElectronNET.Host/build-helper.js b/ElectronNET.Host/build-helper.js
index f24dbf8..e35ac16 100644
--- a/ElectronNET.Host/build-helper.js
+++ b/ElectronNET.Host/build-helper.js
@@ -11,7 +11,8 @@ if(builderConfiguration.hasOwnProperty('buildVersion')) {
packageJson.name = dasherize(manifestFile.name || 'electron-net');
packageJson.author = manifestFile.author || '';
packageJson.version = builderConfiguration.buildVersion;
-
+ packageJson.description = manifestFile.description || '';
+
fs.writeFile('./package.json', JSON.stringify(packageJson), (error) => {
if(error) {
console.log(error.message);
diff --git a/ElectronNET.Host/main.js b/ElectronNET.Host/main.js
index a21639f..f4ff87d 100644
--- a/ElectronNET.Host/main.js
+++ b/ElectronNET.Host/main.js
@@ -1,5 +1,6 @@
const { app } = require('electron');
const { BrowserWindow } = require('electron');
+const { protocol } = require('electron');
const { ipcMain } = require('electron');
const path = require('path');
const cProcess = require('child_process').spawn;
@@ -52,6 +53,14 @@ if (manifestJsonFile.singleInstance || manifestJsonFile.aspCoreBackendPort) {
}
app.on('ready', () => {
+
+ // Fix ERR_UNKNOWN_URL_SCHEME using file protocol
+ // https://github.com/electron/electron/issues/23757
+ protocol.registerFileProtocol('file', (request, callback) => {
+ const pathname = request.url.replace('file:///', '');
+ callback(pathname);
+ });
+
if (isSplashScreenEnabled()) {
startSplashScreen();
}
@@ -173,8 +182,8 @@ function startSocketApiBridge(port) {
});
global['electronsocket'] = socket;
- //global['electronsocket'].setMaxListeners(0);
- console.log('ASP.NET Core Application connected...', 'global.electronsocket', global['electronsocket'].id, socket.listenerCount());
+ global['electronsocket'].setMaxListeners(0);
+ console.log('ASP.NET Core Application connected...', 'global.electronsocket', global['electronsocket'].id, new Date());
appApi = require('./api/app')(socket, app);
browserWindows = require('./api/browserWindows')(socket, app);
@@ -275,6 +284,7 @@ function startAspCoreBackendWithWatch(electronPort) {
};
console.log("Starting child process", binFilePath, parameters, options);
apiProcess = cProcess('dotnet', parameters, options);
+
console.log("Started");
apiProcess.stdout.on('data', (data) => {
console.log(`stdout: ${data.toString()}`);
@@ -293,4 +303,4 @@ function getEnvironmentParameter() {
}
return '';
-}
\ No newline at end of file
+}
diff --git a/ElectronNET.Host/package-lock.json b/ElectronNET.Host/package-lock.json
index 96ae604..3bd7d6a 100644
--- a/ElectronNET.Host/package-lock.json
+++ b/ElectronNET.Host/package-lock.json
@@ -437,9 +437,9 @@
"dev": true
},
"electron": {
- "version": "9.0.5",
- "resolved": "https://registry.npmjs.org/electron/-/electron-9.0.5.tgz",
- "integrity": "sha512-bnL9H48LuQ250DML8xUscsKiuSu+xv5umXbpBXYJ0BfvYVmFfNbG3jCfhrsH7aP6UcQKVxOG1R/oQExd0EFneQ==",
+ "version": "9.2.0",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-9.2.0.tgz",
+ "integrity": "sha512-4ecZ3rcGg//Gk4fAK3Jo61T+uh36JhU6HHR/PTujQqQiBw1g4tNPd4R2hGGth2d+7FkRIs5GdRNef7h64fQEMw==",
"dev": true,
"requires": {
"@electron/get": "^1.0.1",
@@ -448,9 +448,9 @@
},
"dependencies": {
"@types/node": {
- "version": "12.12.47",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.47.tgz",
- "integrity": "sha512-yzBInQFhdY8kaZmqoL2+3U5dSTMrKaYcb561VU+lDzAYvqt+2lojvBEy+hmpSNuXnPTx7m9+04CzWYOUqWME2A==",
+ "version": "12.12.54",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz",
+ "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==",
"dev": true
}
}
@@ -868,9 +868,9 @@
"integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q=="
},
"lodash": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
},
"lodash.isequal": {
"version": "4.5.0",
diff --git a/ElectronNET.Host/package.json b/ElectronNET.Host/package.json
index 0a974ba..b6c6b73 100644
--- a/ElectronNET.Host/package.json
+++ b/ElectronNET.Host/package.json
@@ -21,7 +21,7 @@
"devDependencies": {
"@types/node": "^10.14.4",
"@types/socket.io": "^2.1.2",
- "electron": "^9.0.5",
+ "electron": "^9.2.0",
"tslint": "^6.1.1",
"typescript": "^3.8.3"
}
diff --git a/ElectronNET.WebApp/ElectronHostHook/package-lock.json b/ElectronNET.WebApp/ElectronHostHook/package-lock.json
index 690de23..71ef118 100644
--- a/ElectronNET.WebApp/ElectronHostHook/package-lock.json
+++ b/ElectronNET.WebApp/ElectronHostHook/package-lock.json
@@ -473,9 +473,9 @@
"integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc="
},
"lodash": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
},
"lodash.defaults": {
"version": "4.2.0",
diff --git a/README.md b/README.md
index e2368ac..78cdee7 100644
--- a/README.md
+++ b/README.md
@@ -188,9 +188,9 @@ MIT-licensed
## 📝 Important notes
-### ElectronNET.API & ElectronNET.CLI Version 8.31.1
+### ElectronNET.API & ElectronNET.CLI Version 9.31.2
-Make sure you also have the new Electron.NET API & CLI 8.31.1 version.
+Make sure you also have the new Electron.NET API & CLI 9.31.2 version.
```
dotnet tool update ElectronNET.CLI -g
diff --git a/buildAll.sh b/buildAll.sh
index 3d586ad..a02959a 100755
--- a/buildAll.sh
+++ b/buildAll.sh
@@ -1,39 +1,51 @@
dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
echo "Start building Electron.NET dev stack..."
+
+echo "Build Electron Host"
+pushd $dir//ElectronNET.Host
+ npm install
+ npm run-script start
+popd
+
echo "Restore & Build API"
-cd $dir/ElectronNET.API
-dotnet restore
-dotnet build
-cd ..
+pushd $dir/ElectronNET.API
+ dotnet restore
+ dotnet build
+popd
echo "Restore & Build CLI"
-cd $dir/ElectronNET.CLI
-dotnet restore
-dotnet build
-cd ..
+pushd $dir/ElectronNET.CLI
+ dotnet restore
+ dotnet build
+podp
echo "Restore & Build WebApp Demo"
-cd $dir/ElectronNET.WebApp
-dotnet restore
-dotnet build
-
-echo "Install CLI as dotnet tool"
-
-dotnet tool uninstall ElectronNET.CLI -g
-dotnet tool install ElectronNET.CLI -g
-
-echo "Invoke electronize build in WebApp Demo"
-echo "/target win (dev-build)"
-electronize build /target win
-
-echo "/target linux (dev-build)"
-electronize build /target linux
-
-echo "/target osx (dev-build)"
-electronize build /target osx
-
-echo "/target custom win7-x86;win (dev-build)"
-electronize build /target custom "win7-x86;win"
+pushd $dir/ElectronNET.WebApp
+ dotnet restore
+ dotnet build
+
+ echo "Install CLI as dotnet tool"
+
+ dotnet tool uninstall ElectronNET.CLI -g
+ dotnet tool install ElectronNET.CLI -g
+
+ echo "Invoke electronize build in WebApp Demo"
+ echo "/target win (dev-build)"
+ electronize build /target win
+
+ echo "/target linux (dev-build)"
+ electronize build /target linux
+
+ # Cannot public osx/win on windows due to:
+ # NETSDK1095: Optimizing assemblies for performance is not supported for the selected target platform or architecture.
+ if [[ "$OSTYPE" != "linux-gnu"* ]]; then
+ echo "/target osx (dev-build)"
+ electronize build /target osx
+
+ echo "/target custom win7-x86;win (dev-build)"
+ electronize build /target custom "win7-x86;win"
+ fi
+popd
# Be aware, that for non-electronnet-dev environments the correct
# invoke command would be dotnet electronize ...