gpt4 book ai didi

asp.net - 为什么我的 ASP.NET 网站项目在我告诉它面向 4.8 时面向 .NET Framework 4.6.1?

转载 作者:行者123 更新时间:2023-12-04 10:28:43 26 4
gpt4 key购买 nike

我们有一个大型 Visual Studio 2015 解决方案,其中包含多个网站(而不是 Web Application)项目和数十个业务逻辑 DLL 项目。我们的目标是 .NET Framework 4.6.1,但我现在已经在本地 PC 上安装了 Visual Studio 2019 并将所有项目重新定位到 4.8

当我使用我们现有的 PowerShell/MSBuild 脚本构建解决方案时,所有 DLL 都成功构建,但在我们的第一个网站项目中出现以下错误:

C:\[omitted]_MyWebSite.metaproj : warning MSB3274: The primary reference "C:\[omitted]\MyDLL.dll" could not be resolved because it was built against the ".NETFramework,Version=v4.8" framework. This is a higher version than the currently targeted framework ".NETFramework,Version=v4.6.1".



然后,当编译器在站点上找到一些尝试使用 DLL 的代码时:

c:\[omitted]MyController.cs(6): error CS0246: The type or namespace name 'MyDLL' could not be found (are you missing a using directive or an assembly reference?) [C:\[omitted]_MyWebSite.metaproj]



(这只是一个示例引用错误。事实上,所有 DLL 似乎在网站项目中使用的任何地方都存在此问题。)

站点的 web.config 文件中的相关行:
  <location path="." inheritInChildApplications="false">
<system.web>
[omitted]
<httpRuntime targetFramework="4.8" requestValidationMode="2.0" maxRequestLength="10240" />
<compilation debug="true" strict="false" explicit="true" targetFramework="4.8">

我正在使用以下 MSBuild.exe 路径:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\msbuild.exe -maxcpucount:1 -verbosity:detailed

最佳答案

看起来更新网站项目的 web.config 文件是不够的。您还必须更新属性页中的目标。因此,在解决方案资源管理器中,找到您的网站项目,右键单击 > 属性页 > 构建 > 目标框架 > 更改为 .NET Framework 4.8。

这与 web.config 文件无关,并导致我的 .sln 文件发生了以下变化:

ProjectSection(WebsiteProperties) = preProject
[...omitted...]
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.6.1"

到:
ProjectSection(WebsiteProperties) = preProject
[...omitted...]
TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.8"

关于asp.net - 为什么我的 ASP.NET 网站项目在我告诉它面向 4.8 时面向 .NET Framework 4.6.1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60515026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com