Soru Windows 8 RTM'de .NET uygulamasında Powershell v2.0'ı gömme


Windows 7'den yükseltmeden önce barındırılan powershell komut dosyalarını çalıştırmaya çalışırken aşağıdaki hatayı alıyorum Bu hatayı hiç almadım.

Genişletilmiş tip verisi yüklenirken aşağıdaki hata oluştu   dosya: Microsoft.PowerShell.Core,   C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ types.ps1xml (2977): Hata   "System.Security.AccessControl.ObjectSecurity" yazın: Özel Durum:   getter yöntemi public, non void, static olmalı ve bir tane olmalıdır   PSObject türünde parametre. Microsoft.PowerShell.Core,   C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ types.ps1xml (2984): Hata   "System.Security.AccessControl.ObjectSecurity" yazın: Özel Durum:   getter yöntemi public, non void, static olmalı ve bir tane olmalıdır   PSObject türünde parametre. Microsoft.PowerShell.Core,   C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ types.ps1xml (2991): Hata   "System.Security.AccessControl.ObjectSecurity" yazın: Özel Durum:   getter yöntemi public, non void, static olmalı ve bir tane olmalıdır   PSObject türünde parametre. Microsoft.PowerShell.Core,   C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ types.ps1xml (2998): Hata   "System.Security.AccessControl.ObjectSecurity" yazın: Özel Durum:   getter yöntemi public, non void, static olmalı ve bir tane olmalıdır   PSObject türünde parametre. Microsoft.PowerShell.Core,   C: \ Windows \ SysWOW64 \ WindowsPowerShell \ v1.0 \ types.ps1xml (3005): Hata   "System.Security.AccessControl.ObjectSecurity" yazın: Özel Durum:   getter yöntemi public, non void, static olmalı ve bir tane olmalıdır   PSObject türünde parametre.

App.config dosyasında aşağıdakileri uyguladık:

<dependentAssembly>
  <assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" />
  <publisherPolicy apply="no" />
</dependentAssembly>

Sorun ne olabilir?


23
2017-09-28 10:29


Menşei




Cevaplar:


Çözüm sadece System.Management için bir blok eklemek yerine, aşağıdakileri yapmaktır. Okuduğum mesajlar tarafından önerilen Otomasyon, başvurulan tüm PS montajları için bir tane eklemeniz gerekir.

  <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" />
            <publisherPolicy apply="no" />
          </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PowerShell.Commands.Utility" publicKeyToken="31bf3856ad364e35" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PowerShell.ConsoleHost" publicKeyToken="31bf3856ad364e35" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PowerShell.Commands.Management" publicKeyToken="31bf3856ad364e35" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PowerShell.Security" publicKeyToken="31bf3856ad364e35" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PowerShell.Commands.Diagnostics" publicKeyToken="31bf3856ad364e35" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
        </assemblyBinding>
    </runtime>

36
2017-10-08 07:27



Mükemmel - Bu aynı konudaki bu yazıdan eksik ek bilgi oldu: stackoverflow.com/questions/12060460/... - CJBS
Windows 8.1'de Visual Studio 2013 ile, bu satırları ekleyerek <runtime> bölümü %APPDATA%\..\Local\Microsoft\VisualStudio\12.0\devenv.exe.config sorunu çözer. - afit
VS2015'te benim için başarısız oldu ve bu tavsiye bunun için yararlı oldu. Sadece aç c:\Users\%username%\AppData\Local\Microsoft\VisualStudio\14.0\devenv.exe.config ve aynı satırları ekleyin. - ForNeVeR
Ne yazık ki, zaman zaman Visual Studio bu dosyayı yeniden üretir ve değişiklik kaybolur, bu yüzden geri koymanız gerekir. - Matthew Walton
neredeyse 4 yıl sonra bu hala tek çözüm? - AndrewK


VS 2015 Update 3'te de aynı sorun vardı.

Klasörü kaldırmalıyım:

%APPDATA%\Local\Microsoft\VisualStudio\

ve sonra içine ekleyin:

c:\Users\%username%\AppData\Local\Microsoft\VisualStudio\14.‌​0\devenv.exe.config

kısımda:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

aşağıdaki satırlar:

<dependentAssembly>
  <assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" />
  <publisherPolicy apply="no" />
</dependentAssembly>

<dependentAssembly>
  <assemblyIdentity name="Microsoft.PowerShell.Commands.Utility" publicKeyToken="31bf3856ad364e35" />
  <publisherPolicy apply="no" />
</dependentAssembly>

<dependentAssembly>
  <assemblyIdentity name="Microsoft.PowerShell.ConsoleHost" publicKeyToken="31bf3856ad364e35" />
  <publisherPolicy apply="no" />
</dependentAssembly>

<dependentAssembly>
  <assemblyIdentity name="Microsoft.PowerShell.Commands.Management" publicKeyToken="31bf3856ad364e35" />
  <publisherPolicy apply="no" />
</dependentAssembly>

<dependentAssembly>
  <assemblyIdentity name="Microsoft.PowerShell.Security" publicKeyToken="31bf3856ad364e35" />
  <publisherPolicy apply="no" />
</dependentAssembly>

<dependentAssembly>
  <assemblyIdentity name="Microsoft.PowerShell.Commands.Diagnostics" publicKeyToken="31bf3856ad364e35" />
  <publisherPolicy apply="no" />
</dependentAssembly>

Çözüm ararken iki günümü kaybettim ... teşekkürler MS: - /


5
2017-11-02 06:35



vs25015.3 ve windows 10 için çalışıyor - beyrem


Yukarıdaki cevap benim için işe yaramadı,% APPDATA% .. \ Local \ Microsoft \ VisualStudio \ klasörünü kaldırarak sorunu çözdüm.

VS yeniden başlatıldıktan sonra bu klasör yeniden oluşturulur ve paket yöneticisi konsolu yeniden çalışır. Biraz ham ama iş yapıyor.


1
2017-08-20 10:03



Çok teşekkür ederim!!! Bu işe yarayan tek şey. V3 için güncelledikten sonra her iki PC'de de .... Birçok kudos ve teşekkürler !!!!!! - Christopher Richmond
İyi bir fikir değil. Bu, yüklü uzantıların çoğunu da kaldıracaktır. - Carsten Schütte
Aslında benim için yardımcı olmadı. - ForNeVeR


Çözümü kabul edilen cevapta denedikten ve Visual Studio'nun dosyayı sıfırlamadan yorulduktan sonra VS 2015'i sıfırdan yeniden kurdum ve o zamandan beri sorun yaşamadım. Sorun devam ederse, nükleer seçeneği kesinlikle denemeye değer.


1
2018-02-03 08:33





İşletim sisteminize uygun PowerShell sürümünü yükleyin:

  • Windows XP SP2 / Vista / 2003/2008 - PowerShell v1.0
  • Windows XP SP3 / Vista SP1 / 7/2003 SP2 / 2008 R2 - PowerShell v2.0
  • Windows 7 SP1 / 8/2008 SP1 / 2008 R2 SP1 / 2012 - PowerShell v3.0
  • Windows 7 SP1 / 8.1 / 2008 R2 SP1 / 2012/2012 R2 - PowerShell v4.0
  • Windows 7 SP1 / 8.1 / 2008 R2 SP1 / 2012/2012 R2 - PowerShell v5.0 (Windows Management Framework (WMF) 5.0'ın bir parçası olarak)

0
2017-07-28 21:11



Windows XP SP2 / Vista / 2003/2008 - PowerShell v1.0 Windows XP SP3 / Vista SP1 / 7/2003 SP2 / 2008 R2 - PowerShell v2.0 Windows 7 SP1 / 8/2008 SP1 / 2008 R2 SP1 / 2012 - PowerShell v3 .0 Windows 7 SP1 / 8.1 / 2008 R2 SP1 / 2012/2012 R2 - PowerShell v4.0 Windows 7 SP1 / 8.1 / 2008 R2 SP1 / 2012/2012 R2 - PowerShell v5.0 (Windows Yönetim Çerçevesi'nin (WMF) bir parçası olarak 5.0) - Bob Kiefer
Yerel işletim sistemi sürümlerinde yüklemek için aşağıdakilere gidin: -Kontrol Paneli \ Tüm Denetim Masası Öğeleri \ Programlar ve Özellikler veya eşdeğer, 'Windows özelliklerini açma veya kapatma' bağlantısına tıklayın, 'Özellikler' seçeneğine tıklayın. Sol taraftaki gezinme bölmesindeki MMC ağaç görünümü, 'Özellikler Özeti' bölmesi akordeon alt bölümündeki sağ taraftaki 'Özellik Ekle' bağlantısını tıklayın. Son olarak, Windows PowerShell Entegre Komut Dosyası Ortamı (ISE) onay kutusunu işaretleyin veya eşdeğer (farklı işletim sistemlerinde farklı olabilir) - Bob Kiefer
'Sürümler' bölümünde, orijinal sürüm sürümlerine ve eşleşen işletim sistemlerine bakın: <en.wikipedia.org/wiki/Windows_PowerShell>; - Bob Kiefer