Uygulamalarımızı bir ağ paylaşımında yayınlamak Deploy-Appiçin geliştiricilerimizin VisualStudio 2017 içinde kullandığı bir işlev yazdım Build Events > Post-build event command line.
Invoke-UnlockUzak bir sunucuda kilitli olan klasörleri + dosyaları doğrudan makinelerinin kilidini açan denilen başka bir işlev yazdım .
Şu anda, önce Invoke-Unlockel ile PowerShell'de çalışıyorlar, böylece Uygulamanın ağ paylaşımında kilidini açtıktan sonra Uygulamayı VisualStudio uygulamasında dağıtıyorsunuz.
Şimdi bunun bir Invoke-Unlockparçası oldum , Deploy-Appböylece geliştiricilerin artık bunu manuel olarak yapması gerekmiyor. Sadece buna benzer bir anahtarla arayabilirler Deploy-App xy -InvokeUnlock.
In Invoke-Unlocki kullanmak Get-SmbShareve Get-SmbOpenFile. Bu işlevi manuel olarak kullanırken her şey iyi çalıştı, ancak VisualStudio'da kullanıyorlarsa aşağıdaki hata iletisini alırlar:
9> Get-SmbShare : The term 'Get-SmbShare' is not recognized as the name of a cmdlet, function, script file, or operable
9> program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
9> At \\server\install$\Powershell-Scripts\Functions\Invoke-Unlock.ps1:28 char:22
9> + $LocalPath = Get-SmbShare -CimSession $Session | ? { $_.Name ...
9> + ~~~~~~~~~~~~
9> + CategoryInfo : ObjectNotFound: (Get-SmbShare:String) [], CommandNotFoundException
9> + FullyQualifiedErrorId : CommandNotFoundException
9>
9> Get-SmbOpenFile : The term 'Get-SmbOpenFile' is not recognized as the name of a cmdlet, function, script file, or
9> operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try
9> again.
9> At \\server\install$\Powershell-Scripts\Functions\Invoke-Unlock.ps1:32 char:9
9> + Get-SmbOpenFile -CimSession $Session | ? { $_.Path -like "$En ...
9> + ~~~~~~~~~~~~~~~
9> + CategoryInfo : ObjectNotFound: (Get-SmbOpenFile:String) [], CommandNotFoundException
9> + FullyQualifiedErrorId : CommandNotFoundException
9>
SmbKomutlar PowerShell 4.0 beri mevcuttur. Tüm Geliştiriciler, Windows 10'da PowerShell 5.1'e sahiptir.
Öyleyse neden komutlar tanınmıyor? VisualStudio bir şekilde başka bir PowerShell Sürümü kullanıyor mu? Herhangi birinin bir fikri var mı?
Düzenleme: modülün VisualStudio'da da yüklendiğinden emin olmak ipmo SmbShareiçin başında ekledim Invoke-Unlock, ancak bu hatayı alıyorum:
ipmo : The specified module 'SmbShare' was not loaded because no valid module file was found in any module directory.
Bu bana VisualStudio'nın varsayılan PowerShell Modülü dizinlerini kullanmadığını düşündürüyor?