Используя Powershell, чтобы Зарегистрировать файл в Gac

Сообщение об ошибке четко говорит, что вам нужно JOIN:

SELECT TOP (1) T.*, D.*
from [ADatabase].[dbo].[Tracking] T INNER JOIN
     [ADatabase].[dbo].[Drivers] D
     ON D.[DriverId] = T.[DriverId]
WHERE T.[UTCEventTime] > '2019-02-27' -- DON'T KNOW ABOUT TABLE WHERE IT COMES FROM
ORDER BY T.[Id] desc; -- DON'T KNOW ABOUT TABLE WHERE IT COMES FROM
13
задан Bernhard Hofmann 5 November 2013 в 16:18
поделиться

3 ответа

Если Вы разбираетесь в своем текстовом файле, таким образом, что каждый dll находится на отдельной строке, Вы могли использовать команду Get-Content и передать каждого по каналу к фильтру, который сделал Вашу команду:

filter gac-item { C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\gacutil.exe /nologo /i $_}

get-content fileOfDlls.txt | ?{$_ -like "*.dll"} | gac-item
5
ответ дан 1 December 2019 в 19:23
поделиться

Если Вы создаете псевдоним в своем профиле (просто вводят $profile при подсказке PS для определения этого расположения файла) как так new-alias "gac" ($env:ProgramFiles+"\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe") затем можно использовать gac как так:

get-childitem $basedirectory "*$filter.dll" | foreach-object -process{ WRITE-HOST -FOREGROUND GREEN "Processing $_"; gac /i $_.FullName /f}

последняя часть является самой важной. это называет gacutil с переключателями, которые Вы хотите.

Надеюсь, это поможет.

1
ответ дан 1 December 2019 в 19:23
поделиться

Я предложил бы вызвать функцию для добавления блока к GAC, который что-то после инструкций PowerShell любит, Добавляют-GacItem. Также местоположение gacutil.exe варьируется на основе Вашей системы. Если Вам установили VS 2008, это должно быть в местоположении, показанном ниже.

function Add-GacItem([string]$path) {
  Begin {
    $gacutil="$env:ProgramFiles\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe"

    function AddGacItemImpl([string]$path) {
      "& $gacutil /nologo /i $path"
    }
  }
  Process {
    if ($_) { AddGacItemImpl $_ }
  }
  End {
    if ($path) { AddGacItemImpl $path }
  }
}

Get-Content .\dlls.txt | Split-String | Add-GacItem

Обратите внимание, что Строка Разделения cmdlet прибывает из Pscx. Функция не супер устойчива (никакая подстановочная поддержка не проверяет на странные типы как DateTime), но по крайней мере это может обработать регулярный вызов и конвейерно обработать вызов.

3
ответ дан 1 December 2019 в 19:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: