4642
This commit is contained in:
BIN
packages/WebGrease.1.5.2/tools/WG.exe
vendored
Normal file
BIN
packages/WebGrease.1.5.2/tools/WG.exe
vendored
Normal file
Binary file not shown.
90
packages/WebGrease.1.5.2/tools/install.ps1
vendored
Normal file
90
packages/WebGrease.1.5.2/tools/install.ps1
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
param($installPath, $toolsPath, $package, $project)
|
||||
|
||||
# Return a relative path with reference to root as Uri object
|
||||
# $rootPath - root path
|
||||
# $relativePath - relative path
|
||||
# $appendToRelativePath - Optional parameter. If provided will be appended to relative Path using Path.Combine()
|
||||
Function GetRelativeUri($rootPath, $relativePath, $appendToRelativePath)
|
||||
{
|
||||
if($rootPath -eq $null)
|
||||
{
|
||||
return $null
|
||||
}
|
||||
|
||||
if($relativePath -eq $null)
|
||||
{
|
||||
return $null
|
||||
}
|
||||
|
||||
$rootUri = new-object system.Uri($rootPath)
|
||||
$targetPath = $relativePath
|
||||
|
||||
# If appendToRelativePath is provided then use it
|
||||
if($appendToRelativePath -ne $null)
|
||||
{
|
||||
$targetPath = [io.path]::Combine($relativePath, $appendToRelativePath)
|
||||
}
|
||||
|
||||
$targetUri = new-object system.Uri($targetPath)
|
||||
$relativeUri = $rootUri.MakeRelativeUri($targetUri)
|
||||
|
||||
return $relativeUri
|
||||
}
|
||||
|
||||
# Visual Studio execution done via NuGet Package Manager
|
||||
Function VSExecution($installPath, $package, $project)
|
||||
{
|
||||
#$project.DTE.ExecuteCommand("File.SaveAll", [system.string]::Empty)
|
||||
|
||||
# Get the msbuild version of the project and add the import
|
||||
$msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1
|
||||
|
||||
# add a property for us to be able to reference the path where the package was installed
|
||||
$relativePackageUri = GetRelativeUri $project.FullName $installPath"\lib"
|
||||
|
||||
$msbuild.Xml.AddProperty("WebGreaseLibPath", $relativePackageUri.ToString().Replace([System.IO.Path]::AltDirectorySeparatorChar, [System.IO.Path]::DirectorySeparatorChar))
|
||||
|
||||
# save the project
|
||||
$project.Save()
|
||||
}
|
||||
|
||||
# Command line execution done by any external tool (For example, NuGetUpdater)
|
||||
# $package - package id
|
||||
# $project - parameter value is path to Project file in this case.
|
||||
Function CommandLineExecution($installPath, $package, $project)
|
||||
{
|
||||
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Build")
|
||||
[Reflection.Assembly]::LoadWithPartialName("System.Xml")
|
||||
[Reflection.Assembly]::LoadWithPartialName("System.Xml.Linq")
|
||||
|
||||
# Get the msbuild version of the project and add the import
|
||||
$projXDoc = [System.Xml.Linq.XDocument]::Load($project)
|
||||
|
||||
$defaultNameSpace = $projXDoc.Root.GetDefaultNamespace()
|
||||
|
||||
$propertyGroup = [System.Xml.Linq.XName]::Get("PropertyGroup", $defaultNameSpace.NamespaceName)
|
||||
$webGreaseBuildLocation = [System.Xml.Linq.XName]::Get("WebGreaseLibPath", $defaultNameSpace.NamespaceName)
|
||||
|
||||
# add a property for us to be able to reference the path where the package was installed
|
||||
$relativePackageUri = GetRelativeUri $project.FullName $installPath"\lib"
|
||||
|
||||
$propGroupElement = $projXDoc.Root.Elements($propertyGroup) | Select-Object -First 1
|
||||
IF ($propGroupElement -ne $null)
|
||||
{
|
||||
$newElement = new-object System.Xml.Linq.XElement($webGreaseBuildLocation, $relativePackageUri.ToString().Replace([System.IO.Path]::AltDirectorySeparatorChar, [System.IO.Path]::DirectorySeparatorChar))
|
||||
$propGroupElement.Add($newElement)
|
||||
}
|
||||
|
||||
# save the project
|
||||
$projXDoc.Save($project)
|
||||
}
|
||||
|
||||
|
||||
IF ($project -is [system.string])
|
||||
{
|
||||
CommandLineExecution $installPath $package $project
|
||||
}
|
||||
ELSE
|
||||
{
|
||||
VSExecution $installPath $package $project
|
||||
}
|
||||
63
packages/WebGrease.1.5.2/tools/uninstall.ps1
vendored
Normal file
63
packages/WebGrease.1.5.2/tools/uninstall.ps1
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
param($installPath, $toolsPath, $package, $project)
|
||||
|
||||
# Visual Studio execution done via NuGet Package Manager
|
||||
Function VSExecution($toolsPath, $project)
|
||||
{
|
||||
|
||||
|
||||
$project.DTE.ExecuteCommand("File.SaveAll", [system.string]::Empty)
|
||||
|
||||
# Get the msbuild version of the project and add the import
|
||||
$msbuild = [Microsoft.Build.Evaluation.ProjectCollection]::GlobalProjectCollection.GetLoadedProjects($project.FullName) | Select-Object -First 1
|
||||
|
||||
# now remove our property that points to this package path, "WebGreaseLibPath"
|
||||
foreach ($property in $msbuild.Properties)
|
||||
{
|
||||
if ($property.Name -eq "WebGreaseLibPath")
|
||||
{
|
||||
$propertyToRemove = $property
|
||||
}
|
||||
}
|
||||
|
||||
if ($propertyToRemove -ne $null)
|
||||
{
|
||||
$propertyToRemove.Project.RemoveProperty($propertyToRemove)
|
||||
$project.Save()
|
||||
}
|
||||
|
||||
$project.DTE.ExecuteCommand("File.SaveAll", [system.string]::Empty)
|
||||
}
|
||||
|
||||
# Command line execution done by any external tool (For example, NuGetUpdater)
|
||||
# $project - parameter value is path to Project file in this case.
|
||||
Function CommandLineExecution($toolsPath, $project)
|
||||
{
|
||||
[Reflection.Assembly]::LoadWithPartialName("System.Xml")
|
||||
[Reflection.Assembly]::LoadWithPartialName("System.Xml.Linq")
|
||||
|
||||
|
||||
|
||||
$projXDoc = [System.Xml.Linq.XDocument]::Load($project)
|
||||
$defaultNameSpace = $projXDoc.Root.GetDefaultNamespace()
|
||||
$xmlReader = $projXDoc.CreateReader()
|
||||
$namespaceManager = new-object System.Xml.XmlNamespaceManager($xmlReader.NameTable)
|
||||
$namespaceManager.AddNamespace("my", $defaultNameSpace.NamespaceName)
|
||||
|
||||
$msnRfPackageElement = [System.Xml.XPath.Extensions]::XPathSelectElement($projXDoc.Root, "//my:WebGreaseLibPath", $namespaceManager)
|
||||
if($msnRfPackageElement -ne $null)
|
||||
{
|
||||
$msnRfPackageElement.Remove()
|
||||
}
|
||||
|
||||
# save the project
|
||||
$projXDoc.Save($project)
|
||||
}
|
||||
|
||||
IF ($project -is [system.string])
|
||||
{
|
||||
CommandLineExecution $toolsPath $project
|
||||
}
|
||||
ELSE
|
||||
{
|
||||
VSExecution $toolsPath $project
|
||||
}
|
||||
Reference in New Issue
Block a user