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 ...