为了我自己的学习,我正在尝试在Visual Studio 2015中使用DNX控制台应用程序,我正在尝试实现Daniel Roth在此MSDN文章中显示的示例应用程序:https://msdn.microsoft.com/en-us/magazine/dn913182.aspx在以下部分:跨平台.Net控制台应用程序
在此示例中,作者通过枚举IServiceManifest实例上的Service属性打印出运行时环境中可用的服务列表,该实例通过构造函数注入到Program类中。为了让应用程序访问此接口,作者定义了一个ANI(程序集中性接口),因为IServiceManifest定义在DNX本身内。
这个例子是前一段时间写的:
1)IServiceManifest似乎不再存在。我确实在Microsoft.DNX.Runtime.Abstractions中找到了具有相同Services属性的IRuntimeServices,因此我假设它刚刚重命名。
2)更重要的是,在最近的更新中删除了程序集中性接口,所以我不知道如何访问IRuntimeServices接口以便将它注入到程序构造函数中。
我已尝试将project.json中的依赖项添加到Microsoft.DNX.Runtime.Abstractions,但程序包还原失败。我认为这个包在公共nuget feed上不可用,因为它是DNX本身的一部分。
现在有没有办法创建这种类型的应用程序ANI已被删除?
提前致谢。
答案 0 :(得分:1)
Microsoft.Framework.Runtime.Abstractions
已重命名为Microsoft.Dnx.Runtime.Abstractions
。请参阅this公告。
Microsoft.Framework.Runtime.Abstractions
。Micrsoft.Dnx.Runtime.Abstractions
的引用,并将开发源(https://www.myget.org/F/aspnetvnext/api/v2)添加到您的包源。恢复应该工作。获得运行时抽象包后,您将能够访问IRuntimeEnvironment
答案 1 :(得分:0)
现在,可以通过PlatformServices和CompilationServices获取对控制台应用程序中的运行时服务的访问。
进入IApplicationEnvironment,IRuntimeEnvironment,IAssemblyLoaderContainer,IAssemblyLoadContextAccessor,ILibraryManager 使用Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default静态对象。
要访问ILibraryExporter,ICompilerOptionsProvider使用Microsoft.Extensions.CompilationAbstractions.CompilationServices.Default静态对象。