Move Windows .NET Full instructions

This commit is contained in:
Andrew Schwartzmeyer committed 2016-03-30 21:33:57 -07:00
1 parent 444d42f0d3
commit d6c5242c52
2 files changed
+89 -73

No files matched your search

-73
View File
@@ -179,79 +179,6 @@ but there are plans to refactor .NET's packaged host as a shared library.
### FullCLR PowerShell
On Windows, we also build Full PowerShell for .NET 4.5.1
#### Setup environment
* Install the Visual C++ Compiler via Visual Studio 2015.
This component is required to compile the native `powershell.exe` host.
This is an optionally installed component, so you may need to run the
Visual Studio installer again.
If you don't have any Visual Studio installed, you can use
[Visual Studio 2015 Community Edition][vs].
> Compiling with older versions should work, but we don't test it.
**Troubleshooting note:** If `cmake` says that it cannot determine the
`C` and `CXX` compilers, you either don't have Visual Studio, or you
don't have the Visual C++ Compiler component installed.
* Install CMake and add it to `PATH.`
You can install it from [Chocolatey][] or [manually][].
```
choco install cmake.portable
```
* Install .NET CLI via their [documentation][cli-docs]
[vs]: https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx
[Chocolatey]: https://chocolatey.org/packages/cmake.portable
[manually]: https://cmake.org/download/
#### Building
```powershell
Start-PSBuild -FullCLR
```
**Troubleshooting:** the build logic is relatively simple and contains following steps:
- building managed DLLs: `dotnet publish --runtime net451`
- generating Visual Studio project: `cmake -G "$cmakeGenerator"`
- building `powershell.exe` from generated solution: `msbuild powershell.sln`
All this steps can be run separately from `Start-PSBuild`, don't
hesitate to experiment.
## Running
Running FullCLR version is not as simple as CoreCLR version.
If you just run ~~`.\binFull\powershell.exe`~~, you will get a `powershell`
process, but all the interesting DLLs (i.e. `System.Management.Automation.dll`)
would be loaded from the GAC, not your `binFull` build directory.
[@lzybkr](https://github.com/lzybkr) wrote a module to deal with it and run
side-by-side.
```powershell
Import-Module .\PowerShellGithubDev.psm1
Start-DevPSGithub -binDir $pwd\binFull
```
**Troubleshooting:** default for `powershell.exe` that **we build** is x86.
There is a separate execution policy registry key for x86, and it's likely that
you didn't ~~bypass~~ enable it. From **powershell.exe (x86)** run:
```
Set-ExecutionPolicy Bypass
```
## Running from CI server
We publish an archive with FullCLR bits on every CI build with [AppVeyor][].