在新的基于 2017 cps 的项目文件中我需要 <ProjectGuid> 和 <ProjectTypeGuids> 吗?

Do i need <ProjectGuid> and <ProjectTypeGuids> in the new 2017 cps based project files?

在旧格式中,您会看到如下代码:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <ProjectGuid>{AF007959-0830-4E90-9087-0B413BF83277}</ProjectGuid>
    <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
...

我正在迁移到新的基于 CPS 的项目文件。 我应该保留这些标签还是可以安全地删除它们?

Do i need and in the new 2017 cps based project files?

新的sdk格式项目不需要定义属性ProjectGuidProjectTypeGuids.

它实际上是通过新项目格式<Project Sdk="Microsoft.NET.Sdk"></Project>自动生成和检索ProjectGuidProjectTypeGuids

所以你可以去掉它们,重新定义它们是多余的。

新sdk工程格式的xxx.csproj文件是这样的:

<?xml version="1.0" encoding="utf-8"?>
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    
    <OutputType>Exe</OutputType>
  
    <TargetFramework>net461</TargetFramework>
  
  </PropertyGroup>
 
</Project>