2013-08-30 3 views
2

При попытке создать командлет Powershell возникают только проблемы. Я могу выполнить тот же самый код в записи процесса в консольном приложении. Мысли о том, что App.config не перенаправляет сборку, но не имел большого успеха, заставляя ее работать. Я использовал пакеты NuGet для ссылки на Google-Апи-Dotnet-клиентКомандлет Powershell Отсутствует сборка Google Api

Пример кода здесь
http://tinyurl.com/mbx3yle

Ошибка
http://i.imgur.com/xiEjwAR.png

Get-GAppsUsers : Could not load file or assembly 'System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, 
PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 

PsTest.cs

using System.ComponentModel; 
using System.Collections.Generic; 
using Google.Apis.Admin.Directory.directory_v1.Data; 
using System.Management.Automation; 
using System; 
using Google.Apis.Admin.Directory.directory_v1; 
using Google.Apis.Authentication.OAuth2; 
using Google.Apis.Authentication.OAuth2.DotNetOpenAuth; 
using Google.Apis.Services; 
using Google.Apis.Util; 
using System.Security.Cryptography.X509Certificates; 


namespace PSTest 
{ 
    [RunInstaller(true)] 

    public class PsTest : PSSnapIn 
    { 
     /// <summary> 
     /// Specify a description of the PowerShell snap-in. 
     /// </summary> 
     public override string Description 
     { 
      get 
      { 
       return "This is a PowerShell snap-in that includes the Google Apps Lib"; 
      } 
     } 

     /// <summary> 
     /// Specify the localization resource information for the description. 
     /// Use the format: resourceBaseName,Description. 
     /// </summary> 
     public override string DescriptionResource 
     { 
      get 
      { 
       return "GoogleAppsPSSnapIn,This is a PowerShell snap-in that includes the Google Apps Lib"; 
      } 
     } 

     /// <summary> 
     /// Specify the name of the PowerShell snap-in. 
     /// </summary> 
     public override string Name 
     { 
      get 
      { 
       return "GoogleApps"; 
      } 
     } 

     /// <summary> 
     /// Specify the vendor for the PowerShell snap-in. 
     /// </summary> 
     public override string Vendor 
     { 
      get 
      { 
       return "somecompany"; 
      } 
     } 

     /// <summary> 
     /// Specify the localization resource information for the vendor. 
     /// Use the format: resourceBaseName,VendorName. 
     /// </summary> 
     public override string VendorResource 
     { 
      get 
      { 
       return "GoogleAppsPSSnapIn,somecompany"; 
      } 
     } 
    } 

    [Cmdlet("Get", "GAppsUsers")] 
    public class GetGAppsUsers : PSCmdlet 
    { 



     protected override void ProcessRecord() 
     { 

      const string _serviceAccountCertPath = @"C:\cert.p12"; 
      const string _serviceAccountEmail = @"[email protected]"; 
      const string _serviceAccountUser = @"[email protected]"; 

      var certificate = new X509Certificate2(
       _serviceAccountCertPath, "notasecret", X509KeyStorageFlags.Exportable); 

      var scopes = DirectoryService.Scopes.AdminDirectoryUser.GetStringValue() + @" " + 
         DirectoryService.Scopes.AdminDirectoryGroup.GetStringValue() + @" " + 
         DirectoryService.Scopes.AdminDirectoryOrgunit.GetStringValue() + @" " + 
         DirectoryService.Scopes.AdminDirectoryDeviceChromeos.GetStringValue() + @" " + 
         DirectoryService.Scopes.AdminDirectoryDeviceMobile.GetStringValue() + @" " + 
         DirectoryService.Scopes.AdminDirectoryDeviceMobileAction.GetStringValue(); 

      var provider = new AssertionFlowClient(GoogleAuthenticationServer.Description, certificate) 
      { 
       ServiceAccountId = _serviceAccountEmail, 
       Scope = @scopes 
      }; 

      if (_serviceAccountUser != string.Empty) 
      { 
       provider.ServiceAccountUser = _serviceAccountUser; 
      } 

      var auth = new OAuth2Authenticator<AssertionFlowClient>(provider, AssertionFlowClient.GetState); 

      var _directoryService = new DirectoryService((new BaseClientService.Initializer() { Authenticator = auth })); 

      var service = _directoryService.Users.List(); 

      service.Customer = "my_customer"; 
      service.OrderBy = UsersResource.ListRequest.OrderByEnum.FamilyName; 
      service.SortOrder = UsersResource.ListRequest.SortOrderEnum.ASCENDING; 
      service.MaxResults = 500; 

      var allUsers = new List<User>(); 
      var users = service.Execute(); 

      Int64 count = 0; 

      if (String.IsNullOrEmpty(users.NextPageToken)) 
      { 
       service.PageToken = users.NextPageToken; 

       allUsers.AddRange(users.UsersValue); 

       count = (count + users.UsersValue.Count); 

       Console.Write(count + "..."); 
      } 

      while (!String.IsNullOrEmpty(users.NextPageToken)) 
      { 
       service.PageToken = users.NextPageToken; 

       allUsers.AddRange(users.UsersValue); 

       count = (count + users.UsersValue.Count); 

       Console.Write(count + "..."); 
       users = service.Execute(); 

       if (String.IsNullOrEmpty(users.NextPageToken)) 
       { 
        service.PageToken = users.NextPageToken; 

        allUsers.AddRange(users.UsersValue); 

        count = (count + users.UsersValue.Count); 

        Console.Write(count + "..."); 
       } 
      } 

      WriteObject(allUsers); 
     } 

    } 


} 

App.Config

<?xml version="1.0"?> 
<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> 
     <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> 
     <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> 
     <bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0"/> 
     </dependentAssembly> 
     <dependentAssembly> 
     <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> 
     <bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0"/> 
     </dependentAssembly> 
    </assemblyBinding> 
    <loadfromRemoteSources enabled="true"/> 
    </runtime> 
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> 

Fusion Log

*** Assembly Binder Log Entry (8/31/2013 @ 8:02:43 PM) *** 

The operation failed. 
Bind result: hr = 0x80070002. The system cannot find the file specified. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 
Running under executable C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = NinjaWinMontage\mosheldon 
LOG: DisplayName = System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
(Fully-specified) 
LOG: Appbase = file:///C:/Windows/System32/WindowsPowerShell/v1.0/ 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = powershell.exe 
Calling assembly : Google.Apis, Version=1.5.0.28972, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: This bind starts in LoadFrom load context. 
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load(). 
LOG: Using application configuration file: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.Config 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config. 
LOG: Post-policy reference: System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
LOG: GAC Lookup was unsuccessful. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives.DLL. 
LOG: Assembly download was successful. Attempting setup of file: C:\Users\mosheldon\Desktop\PSTest\PSTest\bin\Debug\System.Net.Http.Primitives.dll 
LOG: Entering run-from-source setup phase. 
LOG: Assembly Name is: System.Net.Http.Primitives, Version=2.1.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
WRN: Comparing the assembly name resulted in the mismatch: Major Version 
ERR: The assembly reference did not match the assembly definition found. 
ERR: Run-from-source setup phase failed with hr = 0x80131040. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives/System.Net.Http.Primitives.EXE. 
LOG: All probing URLs attempted and failed. 

*** Assembly Binder Log Entry (8/31/2013 @ 8:02:43 PM) *** 

The operation failed. 
Bind result: hr = 0x80070002. The system cannot find the file specified. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 
Running under executable C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = NinjaWinMontage\mosheldon 
LOG: DisplayName = System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
(Fully-specified) 
LOG: Appbase = file:///C:/Windows/System32/WindowsPowerShell/v1.0/ 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = powershell.exe 
Calling assembly : Google.Apis, Version=1.5.0.28972, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: This bind starts in LoadFrom load context. 
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load(). 
LOG: Using application configuration file: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.Config 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config. 
LOG: Post-policy reference: System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
LOG: GAC Lookup was unsuccessful. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives.DLL. 
LOG: Assembly download was successful. Attempting setup of file: C:\Users\mosheldon\Desktop\PSTest\PSTest\bin\Debug\System.Net.Http.Primitives.dll 
LOG: Entering run-from-source setup phase. 
LOG: Assembly Name is: System.Net.Http.Primitives, Version=2.1.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
WRN: Comparing the assembly name resulted in the mismatch: Major Version 
ERR: The assembly reference did not match the assembly definition found. 
ERR: Run-from-source setup phase failed with hr = 0x80131040. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives/System.Net.Http.Primitives.EXE. 
LOG: All probing URLs attempted and failed. 

*** Assembly Binder Log Entry (8/31/2013 @ 8:08:35 PM) *** 

The operation failed. 
Bind result: hr = 0x80070002. The system cannot find the file specified. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 
Running under executable C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = NinjaWinMontage\mosheldon 
LOG: DisplayName = System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
(Fully-specified) 
LOG: Appbase = file:///C:/Windows/System32/WindowsPowerShell/v1.0/ 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = powershell.exe 
Calling assembly : Google.Apis, Version=1.5.0.28972, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: This bind starts in LoadFrom load context. 
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load(). 
LOG: Using application configuration file: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.Config 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config. 
LOG: Post-policy reference: System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
LOG: GAC Lookup was unsuccessful. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives.DLL. 
LOG: Assembly download was successful. Attempting setup of file: C:\Users\mosheldon\Desktop\PSTest\PSTest\bin\Debug\System.Net.Http.Primitives.dll 
LOG: Entering run-from-source setup phase. 
LOG: Assembly Name is: System.Net.Http.Primitives, Version=2.1.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
WRN: Comparing the assembly name resulted in the mismatch: Major Version 
ERR: The assembly reference did not match the assembly definition found. 
ERR: Run-from-source setup phase failed with hr = 0x80131040. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives/System.Net.Http.Primitives.EXE. 
LOG: All probing URLs attempted and failed. 

*** Assembly Binder Log Entry (8/31/2013 @ 8:08:35 PM) *** 

The operation failed. 
Bind result: hr = 0x80070002. The system cannot find the file specified. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll 
Running under executable C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = NinjaWinMontage\mosheldon 
LOG: DisplayName = System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
(Fully-specified) 
LOG: Appbase = file:///C:/Windows/System32/WindowsPowerShell/v1.0/ 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = powershell.exe 
Calling assembly : Google.Apis, Version=1.5.0.28972, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: This bind starts in LoadFrom load context. 
WRN: Native image will not be probed in LoadFrom context. Native image will only be probed in default load context, like with Assembly.Load(). 
LOG: Using application configuration file: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe.Config 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config. 
LOG: Post-policy reference: System.Net.Http.Primitives, Version=1.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
LOG: GAC Lookup was unsuccessful. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Windows/System32/WindowsPowerShell/v1.0/System.Net.Http.Primitives/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives.DLL. 
LOG: Assembly download was successful. Attempting setup of file: C:\Users\mosheldon\Desktop\PSTest\PSTest\bin\Debug\System.Net.Http.Primitives.dll 
LOG: Entering run-from-source setup phase. 
LOG: Assembly Name is: System.Net.Http.Primitives, Version=2.1.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 
WRN: Comparing the assembly name resulted in the mismatch: Major Version 
ERR: The assembly reference did not match the assembly definition found. 
ERR: Run-from-source setup phase failed with hr = 0x80131040. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives/System.Net.Http.Primitives.DLL. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives.EXE. 
LOG: Attempting download of new URL file:///C:/Users/mosheldon/Desktop/PSTest/PSTest/bin/Debug/System.Net.Http.Primitives/System.Net.Http.Primitives.EXE. 
LOG: All probing URLs attempted and failed. 

Добавлена ​​System.Net.Http.Primitives версия 2.1.10 и 1,5 в GAC

Get-GAppsUsers : Method not found: 'Void System.Net.Http.HttpClientHandler.set_ 
AutomaticDecompression(System.Net.DecompressionMethods)'. 
+0

Можете ли вы опубликовать код здесь, чтобы больше людей могут помочь вам? – Mitul

+0

Добавлен пример кода в сообщении. – mosheldon

+0

Используйте Nuget для установки пакета Microsoft.Net.Http. –

ответ

3

РЕШЕНИЕ

  1. Регистрация следующее в GAC (gacutil/I путь DLL)

    • System.Net.Http 2.1.10.0
    • System.Net.Http.Primitives 2.1.10.0
    • log4net 1.2 .10.0
  2. Add Binding Перенаправить на "C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.config" (Заменить текущий тег выполнения)

     <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
        <dependentAssembly> 
        <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
        <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" /> 
        </dependentAssembly> 
        <dependentAssembly> 
        <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
        <bindingRedirect oldVersion="0.0.0.0-2.5.19.0" newVersion="2.5.19.0" /> 
        </dependentAssembly> 
        <dependentAssembly> 
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
        <bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0" /> 
        </dependentAssembly> 
        <dependentAssembly> 
        <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
        <bindingRedirect oldVersion="0.0.0.0-2.1.10.0" newVersion="2.1.10.0" /> 
        </dependentAssembly> 
    </assemblyBinding> 
        </runtime> 
    
+0

Я нахожусь в очень похожей лодке, но с одним вопросом - нужно ли это делать на каждом компьютере, использующем Командлеты? Если это так, можно ли это сделать программно? – squid808

+0

Да, это нужно делать каждому, но я считаю, что проблема может быть решена лучше. Не успел еще поработать над этим. – mosheldon

+0

Спасибо. Я не буду притворяться, что понимаю, что происходит, но (это первый раз, когда я слышал о GAC, чтобы быть честным), но теперь это сработало. Так что, по крайней мере, это так. – squid808

Смежные вопросы