未找到##errorC:\Program文件\Microsoft Visual ##errorC:\Program Error MSB3644:未找到.NETFramework、Version=v4.5的引用程序集。要解决这个问题,请安装此框架版本的Developer (SDK/Targeting ),或者重新定向您的应用程序。您可以在.下载.NET框架开发人员包
发布于 2022-03-01 22:40:09
我的解决方案是升级任何针对.Net Framework4.5到4.7.2的项目,然后在VisualStudio2019而不是2022年构建相同的WEBServer2019
发布于 2021-12-23 19:32:40
我也有这个问题。这是我试图解决这个问题的(不成功的)进展。
在VisualStudio2022CommunityVisualStudio2022将我的解决方案的所有项目从不同版本的.NET框架切换到现在的所有针对".NET框架4.8“的项目后,我也会遇到这个问题。
我的错误(几乎与OP相同):
C:\ Files\dotnet\sdk\6.0.101\Microsoft.Common.CurrentVersion.targets(1217,5):错误MSB3644:找不到.NETFramework、Version=v2.0的引用程序集。要解决这个问题,请安装此框架版本的Developer (SDK/Targeting ),或者重新定向您的应用程序。您可以在C:\Users\MyUsername\source\repos\MyRepo1\Source\Libs\MyLibs\MyLibProject\MyLibProject.csproj下载.NET框架开发人员包
此错误提到文件C:\Program Files\dotnet\sdk\6.0.101\Microsoft.Common.CurrentVersion.targets
第1217行的第5列,这将导致以下部分的<GetReferenceAssemblyPaths
:
<Target
Name="GetReferenceAssemblyPaths"
DependsOnTargets="$(GetReferenceAssemblyPathsDependsOn);GetFrameworkPaths">
...
<!-- By default if there is no root path set then the task will assume it is Program Files\Reference Assemblies\Microsoft\Framework-->
<GetReferenceAssemblyPaths
Condition="'$(TargetFrameworkMoniker)' != '' and ('$(_TargetFrameworkDirectories)' == '' or '$(_FullFrameworkReferenceAssemblyPaths)' == '')"
TargetFrameworkMoniker="$(TargetFrameworkMoniker)"
RootPath="$(TargetFrameworkRootPath)"
TargetFrameworkFallbackSearchPaths="$(TargetFrameworkFallbackSearchPaths)"
BypassFrameworkInstallChecks="$(BypassFrameworkInstallChecks)"
>
<Output TaskParameter="ReferenceAssemblyPaths" PropertyName="_TargetFrameworkDirectories"/>
<Output TaskParameter="FullFrameworkReferenceAssemblyPaths" PropertyName="_FullFrameworkReferenceAssemblyPaths"/>
<Output TaskParameter="TargetFrameworkMonikerDisplayName" PropertyName="TargetFrameworkMonikerDisplayName" Condition="'$(TargetFrameworkMonikerDisplayName)' == ''"/>
</GetReferenceAssemblyPaths>
...
</Target>
我知道像$(TargetFrameworkMoniker)
这样的部分是变量。为了确定这些计算结果,我进入Visual,打开csproj文件,转到"Build >Pre命令行“并输入echo "TargetFrameworkMoniker" = "$(TargetFrameworkMoniker)"
。然后,我保存并构建项目,忽略错误,而转到窗口"Output“,查看这些变量的计算结果。我对每个变量都这样做。下面是上面相同的代码,但是变量现在是它们实际评估的内容(对我而言):
<Target
Name="GetReferenceAssemblyPaths"
DependsOnTargets="$(GetReferenceAssemblyPathsDependsOn);GetFrameworkPaths">
...
<!-- By default if there is no root path set then the task will assume it is Program Files\Reference Assemblies\Microsoft\Framework-->
<GetReferenceAssemblyPaths
Condition="'.NETFramework,Version=v4.8' != '' and ('' == '' or '' == '')"
TargetFrameworkMoniker=".NETFramework,Version=v4.8"
RootPath=""
TargetFrameworkFallbackSearchPaths=""
BypassFrameworkInstallChecks=""
>
<Output TaskParameter="ReferenceAssemblyPaths" PropertyName="_TargetFrameworkDirectories"/>
<Output TaskParameter="FullFrameworkReferenceAssemblyPaths" PropertyName="_FullFrameworkReferenceAssemblyPaths"/>
<Output TaskParameter="TargetFrameworkMonikerDisplayName" PropertyName="TargetFrameworkMonikerDisplayName" Condition="'' == ''"/>
</GetReferenceAssemblyPaths>
...
</Target>
除了".NET Framework4.8“之外,我没有看到任何其他建议,所以我现在不知道如何继续下去。
发布于 2021-12-25 09:23:32
我通过将Visual 2022降级为Visual 2014来解决此问题。我卸载了Visual 2022并安装了Visual 2014,其余的都就位了。我的安装现在已经启动并运行。
https://stackoverflow.com/questions/70098410
复制相似问题