【问题标题】:Install ASP.NET 5.0 version of System.ServiceModel.Syndication安装 ASP.NET 5.0 版本的 System.ServiceModel.Syndication
【发布时间】:2015-05-15 15:04:46
【问题描述】:

我正在 Visual Studio 2015 CTP 6 中的 ASP.NET Web 应用程序项目(它是 MVC)中构建一个 C# 类。该类需要读取 RSS 提要,根据 StackOverflow post,最好的方法是通过 System.ServiceModel.Syndication 命名空间。

我尝试通过右键单击 Visual Studio 解决方案资源管理器中 web.app 文件夹下的 References 添加所需的 DLL。然后我选择了 Add Reference... 在对话框中,它没有列出任何 ASP.NET 5.0 库;它只列出了各种库的 4.0 版本。所以我添加了System.ServiceModel (4.0.0.0)。

现在 Visual Studio 抛出这些错误:

...\src\web.app\Models\RssFeedModels.cs(4,14): ASP.NET Core 5.0 error CS0234: The type or namespace name 'ServiceModel' does not exist in the namespace 'System' (are you missing an assembly reference?)
...\src\web.app\Models\RssFeedModels.cs(21,17): ASP.NET Core 5.0 error CS0246: The type or namespace name 'SyndicationFeed' could not be found (are you missing a using directive or an assembly reference?)
...\src\web.app\Models\RssFeedModels.cs(25,20): ASP.NET Core 5.0 error CS0103: The name 'SyndicationFeed' does not exist in the current context

这是我的RssFeedModels.cs 课程:

using System;
using System.Collections.Generic;
using System.Xml;
using System.ServiceModel.Syndication;

namespace web.app.Models
{
    public class Rss
    {
        public string Title { get; set; }
        public string ContentSnippet { get; set; }
        public string Content { get; set; }
        public string PubDate { get; set; }
    }

    public class RssFeedModels
    {
        private XmlReader reader;
        private SyndicationFeed feed;

        public RssFeedModels(string url) {
            reader = XmlReader.Create(url);
            feed = SyndicationFeed.Load(reader);
        }
    }
}

我该如何解决这个问题?谢谢。

更新:按照heymega 的建议修改了project.json 文件。 project.json 文件的相关部分如下所示:

"commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000",
    "gen": "Microsoft.Framework.CodeGeneration",
    "ef": "EntityFramework.Commands",
    "run": "run"
},

"frameworks": {
    "dnx451": { },
    "dnxcore50": { },
    "aspnet50": {
        "dependencies": {
            "Microsoft.AspNet.Mvc": "6.0.0-beta2"
        },
        "frameworkAssemblies": {
            "System.ServiceModel": "4.0.0.0"
        }
    }
},

这会引发很多错误,从这个开始:

The type or namespace name 'ServiceModel' does not exist in the namespace 'System' (are you missing an assembly reference?) web.app.DNX 4.5.1

【问题讨论】:

  • 我在 DNX Core WCF GitHub 页面 here 上创建了一个问题。请添加您的支持。
  • 完成。谢谢,@RehanSaeed。
  • 您解决了这个“ServiceModel”问题吗?我想使用“ServiceModel”从 vnext Web 应用程序与 Windows 服务通信,但有类似的错误...

标签: c# .net asp.net-mvc visual-studio rss


【解决方案1】:

System.ServiceModel 尚未移植到 ASP.NET 5,因此您不能将其用作核心库的一部分。

您应该能够包含标准aspnet50 项目(非核心)的参考。

{
    "commands": {
        "run": "run"
    },
    "frameworks": {
        "aspnet50": {
            "dependencies": {
                "Microsoft.AspNet.Mvc": "6.0.0-beta2"
            },
            "frameworkAssemblies": {
                "System.ServiceModel": "4.0.0.0"
            }
        }
    }
}

我在尝试添加 WCF 服务引用时提出了类似的问题 here

【讨论】:

  • 对于任何想知道的人,这将进入 project.json 文件。
  • 如何修改project.json文件?它已经有项目。我们只是将其添加到其中吗?谢谢
  • 是 - 您从 project.json 手动添加或删除依赖项。 Visual Studio 监视该文件中的更改,并将在幕后添加和删除实际引用。试一试:)
  • 当我将上述代码添加到project.json 文件时,它会引发 1167 错误。请参阅我对上述问题的更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
  • 2020-08-21
  • 1970-01-01
相关资源
最近更新 更多