![](/img/trans.png)
[英]What is the best way to determine how a missing reference in a Visual Studio project can be found?
[英]What's the best way to determine if a Visual Studio project file is using the legacy format or the new .NET Core format?
我有一个操作要对我的项目文件运行,以规范其中的XML标记的顺序(以便更轻松地查看版本控制中发生了什么变化,而不会出现由Visual Studio重新标记这些标记引起的所有误报),但仅适用于旧格式文件-它将破坏新格式的项目文件。 确定项目文件是使用旧格式还是新格式的最佳方法是什么? 我当时想我可以在根Project
标记上搜索Sdk
属性,并将其作为新格式的标志,但是我不知道所有新格式的项目文件都具有该属性还是可以保证该旧格式的项目文件不会...
我可以想到两种方法:
<Project Sdk="..." />
是一种方法。 <Import ... Sdk="..." />
<Project>
<user prop here>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk/1.0.0.0" />
...
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk/1.0.0.0" />
<user target here>
</Project>
<!-- this is now part of the SDK, so only a non-SDK project would import it without a warning. However, this wasn't in projects by default until VS2017 I think -->
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<!-- This is also brought in by the SDK now, and might be a more reliable indicator -->
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<!-- this property is deprecated -->
<ProjectGuid>...</ProjectGuid>
<!-- in SDK-style, this is replaced by <TargetFramework> -->
<TargetFrameworkVersion>...</TargetFrameworkVersion>
</PropertyGroup>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.