Skip to content

Commit 8054ce9

Browse files
authored
Publish release
2 parents fa9880b + a7f9edb commit 8054ce9

File tree

13 files changed

+127
-136
lines changed

13 files changed

+127
-136
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
# Windows Installer PowerShell Module
22

3-
[![build status: master](https://ci.appveyor.com/api/projects/status/github/heaths/psmsi?branch=master&svg=true)](https://ci.appveyor.com/project/heaths/psmsi/branch/master)
4-
[![github release: latest](https://img.shields.io/github/release/heaths/psmsi.svg?logo=github)](https://github.com/heaths/psmsi/releases/latest)
5-
[![github releases: all](https://img.shields.io/github/downloads/heaths/psmsi/total.svg?logo=github&label=github)](https://github.com/heaths/psmsi/releases)
3+
[![Build Status: develop](https://dev.azure.com/heaths/public/_apis/build/status/psmsi-CI?branchName=develop)](https://dev.azure.com/heaths/public/_build/latest?definitionId=14)
4+
[![GitHub Release: Latest](https://img.shields.io/github/release/heaths/psmsi.svg?logo=github)](https://github.com/heaths/psmsi/releases/latest)
5+
[![GitHub Releases: All](https://img.shields.io/github/downloads/heaths/psmsi/total.svg?logo=github&label=github)](https://github.com/heaths/psmsi/releases)
66
[![PowerShell Gallery](https://img.shields.io/powershellgallery/dt/MSI.svg)](https://powershellgallery.com/packages/MSI)
77

8-
Exposes Windows Installer functionality to PowerShell, providing means to query installed product and patch information and to query views on packages.
8+
Exposes Windows Installer functionality to PowerShell, providing means to query installed product and patch information, and to query views on packages.
99

1010
## Description
1111

appveyor.yml

Lines changed: 0 additions & 86 deletions
This file was deleted.

azure-pipelines.yml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
trigger:
2+
- master
3+
- develop
4+
5+
pr:
6+
- master
7+
- develop
8+
9+
variables:
10+
BuildConfiguration: Release
11+
BuildPlatform: Any CPU
12+
13+
jobs:
14+
- job: Build
15+
pool:
16+
vmImage: vs2017-win2016
17+
18+
steps:
19+
- checkout: self
20+
clean: true
21+
lfs: true
22+
23+
- task: VisualStudioTestPlatformInstaller@1
24+
displayName: Install VSTest
25+
26+
- task: NuGetCommand@2
27+
displayName: Restore packages
28+
29+
- powershell: |
30+
$ErrorActionPreference = 'Stop'
31+
$VerbosePreference = 'Continue'
32+
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
33+
Install-Module -Name platyPS -Repository PSGallery -SkipPublisherCheck -Force
34+
New-ExternalHelp -Path "${env:BUILD_SOURCESDIRECTORY}\docs" -OutputPath "${env:BUILD_SOURCESDIRECTORY}\src\PowerShell\bin\${env:BuildConfiguration}" -Force
35+
displayName: Compile documentation
36+
37+
- task: VSBuild@1
38+
displayName: Build solution
39+
inputs:
40+
configuration: $(BuildConfiguration)
41+
maximumCpuCount: true
42+
platform: $(BuildPlatform)
43+
env:
44+
RunCodeAnalysis: true
45+
TreatWarningsAsErrors: true
46+
47+
- task: VSTest@2
48+
displayName: Test solution
49+
inputs:
50+
codeCoverageEnabled: true
51+
configuration: $(BuildConfiguration)
52+
platform: $(BuildPlatform)
53+
runInParallel: true
54+
55+
- task: CopyFiles@2
56+
displayName: Copy files
57+
inputs:
58+
SourceFolder: $(System.DefaultWorkingDirectory)
59+
Contents: |
60+
src\**\bin\$(BuildConfiguration)\**
61+
TargetFolder: $(Build.ArtifactStagingDirectory)
62+
63+
- task: PublishBuildArtifacts@1
64+
displayName: Publish artifact
65+
inputs:
66+
PathtoPublish: $(Build.ArtifactStagingDirectory)

inc/Common.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
<Platform Condition="'$(Platform)' == ''">AnyCPU</Platform>
66
<AssemblyName>Microsoft.Tools.WindowsInstaller.$(MSBuildProjectName)</AssemblyName>
77
<RootNamespace>Microsoft.Tools.WindowsInstaller</RootNamespace>
8-
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
8+
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
99
<AppDesignerFolder>Properties</AppDesignerFolder>
1010
<FileAlignment>512</FileAlignment>
11-
<RestorePackages>true</RestorePackages>
11+
<RestorePackages>false</RestorePackages>
1212
</PropertyGroup>
1313
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
1414
<PropertyGroup>

src/PowerShell/PowerShell.csproj

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -156,9 +156,7 @@
156156
<Sign>True</Sign>
157157
<SubType>Designer</SubType>
158158
</Content>
159-
<None Include="packages.config">
160-
<SubType>Designer</SubType>
161-
</None>
159+
<None Include="packages.config" />
162160
<None Include="PowerShell.nuspec" />
163161
</ItemGroup>
164162
<ItemGroup>
@@ -185,9 +183,8 @@
185183
</Content>
186184
</ItemGroup>
187185
<ItemGroup>
188-
<Analyzer Include="..\..\packages\StyleCop.Analyzers.1.0.0\analyzers\dotnet\cs\Newtonsoft.Json.dll" />
189-
<Analyzer Include="..\..\packages\StyleCop.Analyzers.1.0.0\analyzers\dotnet\cs\StyleCop.Analyzers.CodeFixes.dll" />
190-
<Analyzer Include="..\..\packages\StyleCop.Analyzers.1.0.0\analyzers\dotnet\cs\StyleCop.Analyzers.dll" />
186+
<Analyzer Include="..\..\packages\StyleCop.Analyzers.1.0.2\analyzers\dotnet\cs\StyleCop.Analyzers.CodeFixes.dll" />
187+
<Analyzer Include="..\..\packages\StyleCop.Analyzers.1.0.2\analyzers\dotnet\cs\StyleCop.Analyzers.dll" />
191188
</ItemGroup>
192189
<Import Project="$(IncludeDir)Common.targets" />
193190
<Import Project="$(IncludeDir)TextTemplating.targets" />
@@ -212,22 +209,22 @@
212209
</T4ParameterValues>
213210
</ItemGroup>
214211
</Target>
215-
<Target Name="BuildPackage" DependsOnTargets="CalculateVersion" Inputs="$(TargetPath);$(MSBuildProjectName).nuspec" Outputs="$(OutputPath)MSI.$(BuildVersionSimple).nupkg">
212+
<Target Name="BuildPackage" DependsOnTargets="CalculateVersion" Inputs="$(TargetPath);$(MSBuildProjectName).nuspec" Outputs="$(OutputPath)MSI.$(NuGetPackageVersion).nupkg">
216213
<PropertyGroup>
217214
<ProjectPath>$(MSBuildProjectDirectory)\$(MSBuildProjectName).nuspec</ProjectPath>
218-
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "SolutionDir=$(SolutionDir);Configuration=$(Configuration);Platform=$(Platform);Version=$(BuildVersionSimple)" -OutputDirectory "$(OutputPath.TrimEnd('\'))" -Symbols -NonInteractive -NoPackageAnalysis</BuildCommand>
215+
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -Properties "SolutionDir=$(SolutionDir);Configuration=$(Configuration);Platform=$(Platform);Version=$(NuGetPackageVersion)" -OutputDirectory "$(OutputPath.TrimEnd('\'))" -Symbols -NonInteractive -NoPackageAnalysis</BuildCommand>
219216
</PropertyGroup>
220-
<Exec Command="$(BuildCommand)" Outputs="$(OutputPath)MSI.$(BuildVersionSimple).nupkg">
217+
<Exec Command="$(BuildCommand)" Outputs="$(OutputPath)MSI.$(NuGetPackageVersion).nupkg">
221218
<Output TaskParameter="Outputs" ItemName="FileWrites" />
222219
</Exec>
223220
</Target>
224221
<Target Name="AfterBuild" DependsOnTargets="BuildPackage" />
225-
<Import Project="..\..\packages\Nerdbank.GitVersioning.1.5.46\build\portable-net+win+wpa+wp+sl+netmf+MonoAndroid+MonoTouch+Xamarin.iOS\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.1.5.46\build\portable-net+win+wpa+wp+sl+netmf+MonoAndroid+MonoTouch+Xamarin.iOS\Nerdbank.GitVersioning.targets')" />
222+
<Import Project="..\..\packages\Nerdbank.GitVersioning.2.2.33\build\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.2.2.33\build\Nerdbank.GitVersioning.targets')" />
226223
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
227224
<PropertyGroup>
228225
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
229226
</PropertyGroup>
230-
<Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.1.5.46\build\portable-net+win+wpa+wp+sl+netmf+MonoAndroid+MonoTouch+Xamarin.iOS\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.1.5.46\build\portable-net+win+wpa+wp+sl+netmf+MonoAndroid+MonoTouch+Xamarin.iOS\Nerdbank.GitVersioning.targets'))" />
227+
<Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.2.33\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.2.33\build\Nerdbank.GitVersioning.targets'))" />
231228
</Target>
232229
<!-- vim: set sw=2 ts=2 sts=2 ft=xml: -->
233-
</Project>
230+
</Project>

src/PowerShell/PowerShell.nuspec

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,9 @@
5252
<dependencies />
5353
</metadata>
5454
<files>
55-
<file src="bin\$Configuration$\*.*" exclude="**\*.nupkg;**\Microsoft.Tools.WindowsInstaller.PowerShell.xml" />
55+
<file src="bin\$Configuration$\*.dll" />
56+
<file src="bin\$Configuration$\*.xml" exclude="**\Microsoft.Tools.WindowsInstaller.PowerShell.xml" />
57+
<file src="bin\$Configuration$\MSI.*" />
5658
<file src="$SolutionDir$LICENSE.txt" />
5759
<file src="$SolutionDir$lib\wix\LICENSE.txt" target="Licenses\WIX.txt" />
5860
</files>

src/PowerShell/PowerShell/Commands/GetSummaryInfoCommand.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ namespace Microsoft.Tools.WindowsInstaller.PowerShell.Commands
3232
[OutputType(typeof(SummaryInfo), typeof(TransformInfo))]
3333
public sealed class GetSummaryInfoCommand : ItemCommandBase
3434
{
35+
/// <inheritdoc/>
36+
[Parameter(ParameterSetName = ParameterSet.Path, Mandatory = true, Position = 0, ValueFromPipeline = true, ValueFromPipelineByPropertyName = true)]
37+
public override string[] Path { get; set; }
38+
3539
/// <summary>
3640
/// Gets or sets whether transforms within a patch should be enumerated.
3741
/// </summary>

src/PowerShell/packages.config

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="Nerdbank.GitVersioning" version="1.5.46" targetFramework="net40" developmentDependency="true" />
4-
<package id="StyleCop.Analyzers" version="1.0.0" targetFramework="net40" developmentDependency="true" />
5-
</packages>
3+
<package id="Nerdbank.GitVersioning" version="2.2.33" targetFramework="net35" developmentDependency="true" />
4+
<package id="StyleCop.Analyzers" version="1.0.2" targetFramework="net35" developmentDependency="true" />
5+
</packages>

test/PowerShell.Test/PowerShell.Test.csproj

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,26 +129,25 @@
129129
<Content Include="Data\return.exe" />
130130
<Content Include="Data\test.cub" />
131131
</ItemGroup>
132-
<ItemGroup>
133-
<None Include="packages.config" />
134-
</ItemGroup>
135132
<ItemGroup>
136133
<AdditionalFiles Include="$(SolutionDir)inc\stylecop.json">
137134
<Visible>false</Visible>
138135
</AdditionalFiles>
139136
</ItemGroup>
140137
<ItemGroup>
141-
<Analyzer Include="..\..\packages\StyleCop.Analyzers.1.0.0\analyzers\dotnet\cs\Newtonsoft.Json.dll" />
142-
<Analyzer Include="..\..\packages\StyleCop.Analyzers.1.0.0\analyzers\dotnet\cs\StyleCop.Analyzers.CodeFixes.dll" />
143-
<Analyzer Include="..\..\packages\StyleCop.Analyzers.1.0.0\analyzers\dotnet\cs\StyleCop.Analyzers.dll" />
138+
<None Include="packages.config" />
139+
</ItemGroup>
140+
<ItemGroup>
141+
<Analyzer Include="..\..\packages\StyleCop.Analyzers.1.0.2\analyzers\dotnet\cs\StyleCop.Analyzers.CodeFixes.dll" />
142+
<Analyzer Include="..\..\packages\StyleCop.Analyzers.1.0.2\analyzers\dotnet\cs\StyleCop.Analyzers.dll" />
144143
</ItemGroup>
145144
<Import Project="$(IncludeDir)Common.targets" />
146-
<Import Project="..\..\packages\Nerdbank.GitVersioning.1.5.46\build\dotnet\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.1.5.46\build\dotnet\Nerdbank.GitVersioning.targets')" />
145+
<Import Project="..\..\packages\Nerdbank.GitVersioning.2.2.33\build\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.2.2.33\build\Nerdbank.GitVersioning.targets')" />
147146
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
148147
<PropertyGroup>
149148
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
150149
</PropertyGroup>
151-
<Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.1.5.46\build\dotnet\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.1.5.46\build\dotnet\Nerdbank.GitVersioning.targets'))" />
150+
<Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.2.33\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.2.33\build\Nerdbank.GitVersioning.targets'))" />
152151
</Target>
153152
<!-- vim: set sw=2 ts=2 sts=2 ft=xml: -->
154-
</Project>
153+
</Project>

test/PowerShell.Test/PowerShell/Commands/GetSummaryInfoCommandTests.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
using System;
2424
using System.IO;
25+
using System.Management.Automation;
2526
using Microsoft.Deployment.WindowsInstaller;
2627
using Microsoft.VisualStudio.TestTools.UnitTesting;
2728

@@ -128,5 +129,27 @@ public void GetSummaryInfoFromMst()
128129
Assert.AreEqual<Version>(new Version(2, 0), info.GetPropertyValue<Version>("MinimumVersion"));
129130
}
130131
}
132+
133+
[TestMethod]
134+
public void RequiresPath()
135+
{
136+
// Test fix for https://github.com/heaths/psmsi/issues/39
137+
using (var p = CreatePipeline("get-msisummaryinfo"))
138+
{
139+
try
140+
{
141+
p.Invoke();
142+
143+
Assert.Fail("Expected ParameterBindingException");
144+
}
145+
catch (ParameterBindingException ex)
146+
{
147+
Assert.IsTrue(p.HadErrors);
148+
149+
// Trimming parameter name since in 5.1 it was " Path".
150+
Assert.AreEqual("Path", ex.ParameterName?.Trim());
151+
}
152+
}
153+
}
131154
}
132155
}

0 commit comments

Comments
 (0)