我应该如何在 nuget 包中包含与 MVC 相关的名称空间?

How should I include MVC related namespaces in a nuget package?

我想创建一个 nuget 包来将 MVC-ish 库导入到 MVC 项目中。例如:

但我对应该如何包含它们的名称空间感到困惑。

创建新的 Class 库后,我尝试使用命名空间 System.ComponentModels.DataAnnotations,但无法识别。

我尝试使用解决方案资源管理器中的 References 部分。但那里似乎没有选择 - 只有消息:

No recent framework assemblies were found on your machine or in your project.json.

好的,所以我转到 project.json 文件。

但我不确定应该如何在此处添加这些引用。

{
  "version": "1.0.0-*",
  "description": "ClassLibrary1 Class Library",
  "authors": [ "MHL" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "dependencies": {
    "System.Collections": "4.0.0.0",
    "System.Linq": "4.0.0.0",
    "System.Threading": "4.0.0.0",
    "System.Runtime": "4.0.0.0",
    "Microsoft.CSharp": "4.0.0.0",
    "System.ComponentModel.DataAnotations":  "4.0.0.0"
  },

  "frameworks": {
    "dotnet": { }
  }
}

如果我将 "System.ComponentModel.DataAnotations": "4.0.0.0" 添加到 dependencies 部分,我会收到构建错误 Dependency could not be resolved

所以我 认为 我应该在 frameworks 部分更改一些内容。

但我不确定要添加什么,尤其是因为选项太多(例如 "dotnet"、"net40"、"net50"、"dnx" 等)!

我的理解是 frameworks 部分使单个 nuget 包能够针对不同的框架版本。但实际上,我想要的只是一个通用的 MVC 包。我不想不必要地将包限制为特定版本的框架。

去 NugetPackage manager 解决。

搜索并添加 ComponentModel.DataAnnotations

请务必重建您的解决方案。

您会发现它可以识别 using 并且它会出现在您旁边的参考资料中。