Unntak når det kjøres aspnet MVC-programmet på OS X

stemmer
2

Jeg prøver å kjøre prøver for aspnet 5 på OS X: git klone https://github.com/shirhatti/Home.git

Når jeg bygge prosjektet HelloMvc - 'kpm build' - det er ok. Da kjører jeg app bruker 'k Kestrel' og se følgende feilmelding:

Manglende metode Microsoft.Framework.Runtime.ILibraryInformation :: get_LoadableAssemblies () i sammenstillingen data-0x7feb6aa02a00, referert i sammenstillingen /Users/minya/.kpm/packages/Microsoft.AspNet.Mvc.Core/6.0.0-beta2-11905/lib /aspnet50/Microsoft.AspNet.Mvc.Core.dll System.MissingMethodException: Metode ikke funnet: 'Microsoft.Framework.Runtime.ILibraryInformation.get_LoadableAssemblies'. ved System.Linq.Enumerable + c__Iterator12 2[Microsoft.Framework.Runtime.ILibraryInformation,System.Reflection.AssemblyName].MoveNext () [0x00000] in <filename unknown>:0 at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator102 [System.Reflection.AssemblyName, System.Reflection.Assembly] .MoveNext () [0x00000] i: 0 ved System.Linq.Enumerable + c__Iterator12 2[System.Reflection.Assembly,System.Reflection.TypeInfo].MoveNext () [0x00000] in <filename unknown>:0 at Microsoft.AspNet.Mvc.ControllerActionDescriptorProvider.BuildModel () [0x00000] in <filename unknown>:0 at Microsoft.AspNet.Mvc.ControllerActionDescriptorProvider.GetDescriptors () [0x00000] in <filename unknown>:0 at Microsoft.AspNet.Mvc.ControllerActionDescriptorProvider.Invoke (Microsoft.AspNet.Mvc.ActionDescriptorProviderContext context, System.Action callNext) [0x00000] in <filename unknown>:0 at Microsoft.Framework.DependencyInjection.NestedProviders.NestedProviderManager1 + CallNext [Microsoft.AspNet.Mvc. ActionDescriptorProviderContext] .CallNextProvider () [0x00000] i: 0 ved Microsoft.Framework.DependencyInjection.NestedProviders.NestedProviderManager 1[Microsoft.AspNet.Mvc.ActionDescriptorProviderContext].Invoke (Microsoft.AspNet.Mvc.ActionDescriptorProviderContext context) [0x00000] in <filename unknown>:0 at Microsoft.AspNet.Mvc.DefaultActionDescriptorsCollectionProvider.GetCollection () [0x00000] in <filename unknown>:0 at Microsoft.AspNet.Mvc.DefaultActionDescriptorsCollectionProvider.get_ActionDescriptors () [0x00000] in <filename unknown>:0 at Microsoft.AspNet.Mvc.Routing.AttributeRouting.GetActionDescriptors (IServiceProvider services) [0x00000] in <filename unknown>:0 at Microsoft.AspNet.Mvc.Routing.AttributeRouting.CreateAttributeMegaRoute (IRouter target, IServiceProvider services) [0x00000] in <filename unknown>:0 at Microsoft.AspNet.Builder.BuilderExtensions.UseMvc (IApplicationBuilder app, System.Action1 configureRoutes) [0x00000] i: 0 ved Microsoft.AspNet.Builder.BuilderExtensions.UseMvc (IApplicationBuilder app) [0x00000] i: 0 på KWebStartup.Startup.Configure (IApplicationBuilder app) [0x00000] i: 0 på (wrapper klarte å native) System.Reflection.MonoMethod: InternalInvoke (System.Reflection.MonoMethod, objekt, objekt [], System.Exception &) ved System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder bindemiddel, System.Object [] parametere, System.Globalization.CultureInfo kultur) [0x00000] i: 0

Det er ingen eksakt problem i google. Jeg ble forsøkt å installere kvm, slette og kassa nuget deps.

Oppdatert: Ligner oppførsel på Windows når jeg prøver å kjøre det samme prosjektet med 'k web':

System.MissingMethodException: Metode ikke funnet: 'System.Collections.Generic.IEnumerable 2.MoveNext () ved System.Linq.Enumerable.WhereSelectEnumerableIterator 2.MoveNext () ved System.Linq.Enumerable.WhereEnumerableIterator 1.CallNext.CallNextProvider () hos Microsoft.Framework.DependencyInjection.NestedProviders.NestedProviderManager 1 configureRoutes) på Microsoft.AspNet.Builder.BuilderExtensions.UseMvc (IApplicationBuilder app) på HelloMvc.Startup.Configure (IApplicationBuilder app) i C: \ PRJ \ Home \ samples \ HelloMvc \ Startup. cs: linje 18 1<System.Reflection.AssemblyName> Microsoft.Framework.Runtime.ILibraryInformation.g et_LoadableAssemblies()'.
at Microsoft.AspNet.Mvc.DefaultAssemblyProvider.<>c__DisplayClass0.<get_CandidateAssemblies>b__1(ILibraryInformation l)
at System.Linq.Enumerable.<SelectManyIterator>d__14

2.MoveNext()
at System.Linq.Enumerable.<SelectManyIterator>d__14

1.MoveNext()
at Microsoft.AspNet.Mvc.ControllerActionDescriptorProvider.BuildModel()
at Microsoft.AspNet.Mvc.ControllerActionDescriptorProvider.GetDescriptors()
at Microsoft.AspNet.Mvc.ControllerActionDescriptorProvider.Invoke(ActionDescriptorProviderContext context, Action callNext)
at Microsoft.Framework.DependencyInjection.NestedProviders.NestedProviderManager

1.Invoke(T context)
at Microsoft.AspNet.Mvc.DefaultActionDescriptorsCollectionProvider.GetCollection()
at Microsoft.AspNet.Mvc.DefaultActionDescriptorsCollectionProvider.get_ActionDescriptors()
at Microsoft.AspNet.Mvc.Routing.AttributeRouting.GetActionDescriptors(IServiceProvider services)
at Microsoft.AspNet.Mvc.Routing.AttributeRouting.CreateAttributeMegaRoute(IRouter target, IServiceProvider services)
at Microsoft.AspNet.Builder.BuilderExtensions.UseMvc(IApplicationBuilder app, Action


Ser ut til å være problemet er i ett (eller flere) av det refereres til i Microsoft.AspNet.Mvc. * Sammenstillinger. Dette er demontere av DefaultAssemblyProvider fra Microsoft.AspNet.Mvc.Core. Jeg tror problemet er i ILibraryManager sin implementeringer GetReferencingLibraries () -metoden. Men jeg kan ikke finne denne implementeringen.

public class DefaultAssemblyProvider : IAssemblyProvider
{
    private static readonly HashSet<string> _mvcAssemblyList;
    private readonly ILibraryManager _libraryManager;

    public IEnumerable<Assembly> CandidateAssemblies
    {
        get
        {
            return Enumerable.Select<AssemblyName, Assembly>(Enumerable.SelectMany<ILibraryInformation, AssemblyName>(this.GetCandidateLibraries(), DefaultAssemblyProvider.\u003C\u003Ec__DisplayClass0.CS\u0024\u003C\u003E9__CachedAnonymousMethodDelegate2 ?? (DefaultAssemblyProvider.\u003C\u003Ec__DisplayClass0.CS\u0024\u003C\u003E9__CachedAnonymousMethodDelegate2 = new Func<ILibraryInformation, IEnumerable<AssemblyName>>(DefaultAssemblyProvider.\u003C\u003Ec__DisplayClass0.CS\u0024\u003C\u003E9__inst.\u003Cget_CandidateAssemblies\u003Eb__1))), new Func<AssemblyName, Assembly>(DefaultAssemblyProvider.Load));
        }
    }

    static DefaultAssemblyProvider()
    {
        HashSet<string> hashSet = new HashSet<string>((IEqualityComparer<string>) StringComparer.Ordinal);
        string str1 = Microsoft.AspNet.Mvc;
        hashSet.Add(str1);
        string str2 = Microsoft.AspNet.Mvc.Core;
        hashSet.Add(str2);
        string str3 = Microsoft.AspNet.Mvc.ModelBinding;
        hashSet.Add(str3);
        string str4 = Microsoft.AspNet.Mvc.Razor;
        hashSet.Add(str4);
        string str5 = Microsoft.AspNet.Mvc.Razor.Host;
        hashSet.Add(str5);
        string str6 = Microsoft.AspNet.Mvc.Rendering;
        hashSet.Add(str6);
        DefaultAssemblyProvider._mvcAssemblyList = hashSet;
    }

    public DefaultAssemblyProvider(ILibraryManager libraryManager)
    {
        this._libraryManager = libraryManager;
    }

    internal IEnumerable<ILibraryInformation> GetCandidateLibraries()
    {
        return Enumerable.Where<ILibraryInformation>(Enumerable.Distinct<ILibraryInformation>(Enumerable.SelectMany<string, ILibraryInformation>((IEnumerable<string>) DefaultAssemblyProvider._mvcAssemblyList, new Func<string, IEnumerable<ILibraryInformation>>(this._libraryManager.GetReferencingLibraries))), new Func<ILibraryInformation, bool>(DefaultAssemblyProvider.IsCandidateLibrary));
    }

    private static Assembly Load(AssemblyName assemblyName)
    {
        return Assembly.Load(assemblyName);
    }

    private static bool IsCandidateLibrary(ILibraryInformation library)
    {
        return !DefaultAssemblyProvider._mvcAssemblyList.Contains(library.get_Name());
    }
}
Publisert på 14/11/2014 klokken 10:59
kilden bruker
På andre språk...                            


2 svar

stemmer
1

Jeg hadde et lignende problem på Windows og funnet feil KRE var aktiv.

Utføre kvm listviser en liste over KRE. I mitt tilfelle den 1.0.0-alpha4versjonen var aktive i stedet for den nyere betaversjon.

Å bruke standard med kvm use defaultsorterte den for meg.

Svarte 19/11/2014 kl. 11:29
kilden bruker

stemmer
0

Jeg var i stand til å løse denne feilen ved å oppdatere min versjon av KVM, er det sannsynligvis en enklere måte, men forutsatt at du i utgangspunktet installeres ved hjelp av homebrew, kjører disse kommandoene skal løse problemet ditt

  • brygg untap aspnet / k
  • brygg fra springen aspnet / k
  • brygge installere kvm

så du bør være i stand til å kjøre k Kestrel

hvis du får en melding om at kvm er allerede installert da:

  • brygg kobling --overwrite mono
  • brygge avinstallere mono
  • brygge ominstallering kvm
Svarte 15/11/2014 kl. 10:53
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more