* add targets to correctly embed interops
* remove 14.0 as it's included through Microsoft>VisualStudio.Shell.15.0
* remove 15.0 as it's only used in the APItest
* remove 15.3 design time
* use the correct version of the Microsoft.NuGet.targets
* fix experimental instance
* extract most of the target framework defintions out of the csproj
* remove every target framework mention from the sdk based csproj
* Move old style csprojes to use the projectversion too
* use better variable names
* use the nugetcoresrc and nugetclientssrc variables
ResolvesNuGet/Home#5258.
Added tests for basic scenarios per each project model supporting LSL
mode: `packages.config`, `project.json`, `PackageRef`.
Updated E2E test infrastructure to support test extension cmdlets and
running "theories". Added ability to skip tests for specific VS version.
Also added missing templates for unit-test project and native C++ console application.
Addressed PR feedback
2nd pass over NuGet.Client projects.
ResolvesNuGet/Client.Engineering#28
---
Changed the dependency order of PM.VS and PM.UI projects. Moved shared
code into `NuGet.VisualStudio.Common` (former Facade). Normalized
namespaces across all of the projects. Split constants. Split
`EnvDTEProjectUtility`.
New dependency graph of NuGet.Client projects:
```
NuGet.VisualStudio.Common
+---NuGet.VisualStudio
+---NuGet.VisualStudio.Interop
+---NuGet.SolutionRestoreManager.Interop
|
+---NuGet.TeamFoundationServer
|
+---NuGet.PackageManagement.VisualStudio
+---NuGet.VisualStudio.Implementation
+---NuGet.PackageManagement.PowerShellCmdlets
+---NuGet.SolutionRestoreManager
|
+---NuGet.PackageManagement.UI
+---Options
+---NuGet.Console
+---NuGet.Tools
+---NuGet.VisualStudio.Client
```
3rd clean version of the Restore Service API designed to accept project
restore nomination requests.
The API provides the service interface along with data structure
interfaces, needed to pass the restore data of projects references,
package references and framework assemblies.
Part of the NuGet Restore Manager design work tracked in NuGet/Home#3456.
Overall design spec is at
https://github.com/NuGet/Home/wiki/NuGet-Restore-Manager
Designed as truly-embeddable service API. Followed VS guidelines to create
embeddable types. No external dependencies allowed.
Summary of changes:
- Moved end-to-end packaging script from TFS.
- Added e2e packaging steps to `build.ps1`.
- Added `AfterBuild` target to test extension projects publishing
build artifacts to a well-known location.
- Fixed `NuGet.Tests.psm1` module script to locate test extension
artifacts.
Contributes to NuGet/Home#3435, NuGet/Home#3519
This change resolves number of issues blocking VS15 build on a box with VS
"15" willow installed at non-default location:
- Discovery of msbuild 15.1
- Microsoft.Build.* dependency version
- VS15/VS14 facade package restore conflict
- Assembly references pointing to a default VisualStudio PublicAssemblies location
- Binding VisualStudioVersion to MSBuildToolsetVersion
Key changes:
- Added 'Debug VS14'/'Release VS14' **solution** configurations to control
projects built for specific "toolset", i.e target VS version
- Added `HintPath` to Microsoft.Build.* assemblies pointing to current
`MSBuildToolsPath`
- Added `VisualStudioInstallDir` property initialized with VS install path
from registry key
- Moved common project properties to `common.props`
- Project files cleanup
FixesNuGet/Home#3185.
Made changes required to build and keep set of symbols per VS version we
support:
- Added AfterBuild target to VsExtension to publish symbols to relevant
VS14/15 artifacts folder.
- Renamed clients projects after assembly names for consistency.
- Changed CopyLocal to true for all VsExtension project dependencies.
Root cause: Accessing DTE and other related COM objects from a background
thread like powershell's pipeline execution thread is highly discouraged
as it can cause random hangs and crashes.
Fix: Move all the powershell utility methods into C# where you can safely
switch to UI thread before accessing the DTE and other related COM objects
What does this commit contain?
Added a few static helper classes which performs all the operations
that the powershell VS helper methods used to to. In particular, all the
DTE access have been moved into C# and it accessed from the UI thread.
What is pending?
Still, there are references to DTE.Project objects. Technically, this
can cause hangs and crashes too. And, it will be fixed in phase-II
in a different commit.
2. ScriptExector does the actual execution of init.ps1 scripts. It tries to locate the
package in global packages folder.
3. ScriptExecutor has been refactored a little bit to only execute init.ps1
that has not been executed already. It also caches solution directory.
4. On solution open though, PowershellHost calls into IScriptExecutor to
reset the cached solution directory and the cache of successful executions
of init.ps1. Meaning, init.ps1 will get executed on every solution open.
5. Added a couple of functional tests to test the new service IVsScriptExecutor
both on a regular class library and a DNX project.
6. Added a unit test library for VSGlobalPackagesInitScriptExecutor to test
the negative inputs.