Support for building Windows app on Windows#1795
Conversation
…n a typical Window machine using npm scripts - similar to the macOS build system. * Ported the assemble-build.sh and vsts build process & configs to package.json scripts. * Fixed relative file path bug in wix installer project. * Fixed bug with win32 long file path restriction in the xcopy command used for Resource files in a csproj script. * Added small batch script for finding and invoking msbuild. * Added shx npm devDependency - provides cross unix shell commands.
|
Cool, thanks @zone117x, taking a crack at updating the CI to use this now. |
|
I'm getting |
|
Do we do code signing of windows builds? |
Couple things to note here:
Also this npm build script doesn't do any code signing. I recommend leaving the existing codesigned-msi-producing setup alone - let it remain using the old build scripts. Or setup a fresh environment/VM that won't cause these issues. |
|
Here's an image: Visual Studio 2017
environment:
nodejs_version: 10
install:
- cmd: >-
powershell -Command "(new-object System.Net.WebClient).DownloadFile('https://github.com/wixtoolset/wix3/releases/download/wix3111rtm/wix311.exe', 'wix311.exe')"
wix311.exe /install /quiet /norestart
npm i
build_script:
- cmd: npm run win32
artifacts:
- path: '**\BlockstackSetup.msi' |
|
This works great for me @zone117x -- tested by using the built artifact to install over existing install. |
|
I'm ready to approve this, but why did the |
I accidentally removed it from the build queue on AppVeyor's end while testing. If we close then re-open the PR it should work. Want me to try that? |
|
Nope -- this is fine. |
kantai
left a comment
There was a problem hiding this comment.
The build on AppVeyor worked smoothly -- it installed over existing installations of blockstack browser on Windows just as it should.
|
Unfortunately I'm not sure how to review this, since I'm on a Mac. I do have a computer with bootcamp and windows around the house but it's not setup for anything development related. I could spend some time setting up node and trying to build this. But, I trust Aaron's review if it works for him. |
|
@hstove for verifying signature, I think the unix tool osslsigncode that we've been using for signing, can also verify the signature on the msi artifact from appveyor. Not sure about the usage args though.
I use a Windows VM on my Mac. VMWare Fusion and Parallels both work pretty well. But that would take quite some time to setup and install all the requisite tooling. I think the fact that the build scripts works on a clean Windows CI (appveyor) is good enough. @kantai good to merge? |
Yep, go ahead. |

Ported the shell build scripts and vsts config over to package.json scripts (similar setup to the macOS build scripts).
Building the Windows app and .msi now only requires running
npm run win32@kantai This is largely an additive PR, only couple minor changes to
BlockstackBrowser.csprojandBlockstackSetup.wixprojto fix:C:\Users\matt\Documents\Source\Blah\Projects\blockstack-browservsC:\blockstack-browserShould only need to double check that the current msi producing CI works without issue.