是什么决定了我的.net核心是否使用.csproj或project.json

时间:2017-01-28 15:16:28

标签: visual-studio .net-core

我安装了.NET Core 1.1.0 1.0.0-preview2-1-003182的机器以及VisualStudio 2017 RC。当我使用“dotnet new -t Console”创建项目时,它需要一个project.json文件。当我在Visual Studio 2017中创建.NET Core ConsoleApp时,它需要.csproj进行构建配置。这决定了什么?我希望有一个或者另一个,最好是一致的.csproj,因为就我未知版本而言,project.json已被弃用。

VisualStudio 2017 RC似乎不会构建一个自包含的可执行文件,所以我回到命令行尝试“dotnet publish -t win10-x64”,从而得到没有project.json的错误。所以,即使我将.csproj配置为构建.exe,我也不能只构建它。

1 个答案:

答案 0 :(得分:2)

.NET Core Tools的版本是原因:

    .NET Core Tools Preview 3

    开始使用
  • .csproj

    注意:Visual Studio 2017 RC安装.NET Core Tools Preview 3(现在甚至是预览版4)。

  • project.json用于以前的版本。

如果您想知道使用.NET Core Tools版本,请转到root项目文件夹并运行下一个命令:

dotnet --info

可能的输出:

.NET Command Line Tools (1.0.0-preview2-1-003177)

Product Information:
 Version:            1.0.0-preview2-1-003177
 Commit SHA-1 hash:  a2df9c2576

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.12
 OS Platform: Darwin
 RID:         osx.10.12-x64

如果您的计算机上有多个版本的.NET Core Tools,则可以通过global.json直接指定版本。在根文件夹中创建(如果不存在)此文件并添加" sdk"部分。例如,对于工具预览2:

{
    ...
    "sdk": { "version": "1.0.0-preview2-1-003177" }
}

您也可以使用dotnet-migrate命令将project.json转换为.csproj