我希望将一个针对 .NET Framework 4.6.1 的库项目迁移到一个新的项目上,该项目同时支持 .NET Framework 4.6.1 和 .NET Standard 2.0。
<PropertyGroup Condition=" '$(OS)' == 'Windows_NT' ">
<TargetFrameworks>netstandard2.0;net461</TargetFrameworks>
</PropertyGroup>
在我目前的代码中,例如我使用:System.Web.Hosting.HostingEnvironment.MapPath()
方法; 所以,我已经在我的.csproj
文件中添加了一个条件:
<ItemGroup Condition=" '$(TargetFramework)' == 'net461' ">
<Reference Include="System.Web" />
</ItemGroup>
现在在我的代码中,我知道我可以像这样写:
#if NET461
if (someFolderVar.StartsWith("~/"))
someFolderVar = System.Web.Hosting.HostingEnvironment.MapPath(someFolderVar);
#endif
我的问题:
如果我将项目更改为针对.NET Framework 4.7,上述代码是否会被执行,还是严格针对.NET Framework 4.6.1?如何判断是否使用4.6.1及以上版本的条件?