c# - asp网站项目中多目标框架的问题
问题描述
我开发了一个针对 .NetStandard 和 .NetFramework 的 C# 库框架。这是通过编辑 .csproj 文件,将 TargetFramework 更改为 TargetFramework并将它们都添加到标签中来完成的:
<TargetFrameworks>netstandard2.0;net471</TargetFrameworks>
我现在可以将此框架添加为我的其他项目中的 ProjectReference。
这适用于所有具有 .csproj 文件的项目。
然而,当将框架添加到一个 asp 网站项目(没有 .csproj 文件)时,我得到了一些非常奇怪的构建错误。
Could not get dependencies for project reference 'XX.Framework' wwwroot
The type 'System.Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.
我的网站的 TargetFramework 是 4.7.1,如我的 web.config 中所示:
<compilation debug="true" targetFramework="4.7.1">
我从导入的 .dll 的文件大小中看到,它正在获取 .NetStandard 而不是 .NetFramework 的 dll。正确地为什么我会遇到构建错误。
请注意,当通过 nuget 添加框架时,而不是项目引用,它确实获得了正确的 dll,即 .NetFramework dll。因此没有构建错误。
我的问题是: 为什么 asp.net 网站在通过项目引用添加多目标框架时忽略 web.config 中的 targetFramework?
编辑1:我的网站结构:
编辑2:带有问题示例的VS解决方案。 https://github.com/srenrd/MultiFrameworkExample
解决方案
推荐阅读
- django - 我的 Bollean 字段之一显示为选择(未知/是/否)而不是复选框
- pandas - 从 Spark UDF 调用时,pandas to_csv 函数未写入 Blob 存储
- regex - Oniguruma 正则表达式条件组捕获
- javascript - 通过键匹配两个对象,并从一个对象返回一个具有键和值的新对象
- amazon-web-services - 如何使用白名单后端主机 IP 创建 GCP 负载平衡
- scripting - 如何在没有大字符串的情况下创建资源字符串?
- android - 如何在 RecyclerView 适配器中的 ClickListener 上显示 AlertDialog
- javascript - 在 react.js 中使用 three.js 创建 WebXR 应用程序时,我不断看到“XRWebGLLayer”未定义 no-undef
- c - C 用户输入被跳过
- css - 如何阻止伪元素沿其父元素的内容滚动?