Dav*_*New 13 msbuild assemblies visual-studio visual-studio-2017 .net-standard
我收到以下MSB3644并发症错误:
找不到框架".NETFramework,Version = v4.0"的引用程序集.要解决此问题,请为此框架版本安装SDK或Targeting Pack,或者将应用程序重新定位到已安装SDK或Targeting Pack的框架版本.请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于代替引用程序集.因此,您的程序集可能无法正确定位到您想要的框架.
从我在这里读到的,这是由于我的机器上的程序集存储在"程序文件"而不是"程序文件(x86)"中.FrameworkPathOverride
MSBuild上的属性可以修复它.
我已经尝试将此属性(FrameworkPathOverride
)添加到csproj:
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\tools\common.props" />
<PropertyGroup>
<TargetFrameworks>net40;net45;netstandard1.2</TargetFrameworks>
<GeneratePackageOnBuild>False</GeneratePackageOnBuild>
<FrameworkPathOverride>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0</FrameworkPathOverride>
</PropertyGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net40' ">
<Reference Include="System.Configuration" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net45' ">
<Reference Include="System.Configuration" />
</ItemGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard1.2' ">
<DefineConstants>$(DefineConstants);NETSTANDARD</DefineConstants>
</PropertyGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.2' ">
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
那个错误然后消失了,但我的所有类型和命名空间都无法解决,我也得到了这个构建警告:
MSB3270正在构建"AMD64"的项目的处理器体系结构与参考"C:\ Windows\Microsoft.NET\Framework\v4.0.30319\mscorlib.dll","x86"的处理器体系结构之间存在不匹配.这种不匹配可能会导致运行时故障.请考虑通过Configuration Manager更改项目的目标处理器体系结构,以便在项目和引用之间调整处理器体系结构,或者依赖于具有与项目的目标处理器体系结构相匹配的处理器体系结构的引用.
将项目的目标框架设置为x86后,警告消失,但仍然没有类型或命名空间可以解析.
我安装了所有必要的框架:
我在Windows 10上使用Visual Studio 2017.
归档时间: |
|
查看次数: |
5885 次 |
最近记录: |