Uygulamalarımızı bir ağ paylaşımında yayınlamak Deploy-App
için geliştiricilerimizin VisualStudio 2017 içinde kullandığı bir işlev yazdım Build Events > Post-build event command line
.
Invoke-Unlock
Uzak 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-Unlock
el 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-Unlock
parçası oldum , Deploy-App
böylece geliştiricilerin artık bunu manuel olarak yapması gerekmiyor. Sadece buna benzer bir anahtarla arayabilirler Deploy-App xy -InvokeUnlock
.
In Invoke-Unlock
i kullanmak Get-SmbShare
ve 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>
Smb
Komutlar 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 SmbShare
iç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?