【问题标题】:project.json Not Found in Visual Studio 2017 RC Solution Explorer在 Visual Studio 2017 RC 解决方案资源管理器中找不到 project.json
【发布时间】:2016-11-20 00:31:48
【问题描述】:

我在 Visual Studio 2017 RC 中没有找到 project.json。这在这个版本中被删除了还是我遗漏了什么?如果它被删除,他们现在如何存储依赖项列表?

【问题讨论】:

    标签: project.json


    【解决方案1】:

    未来,.Net Core 将基于 msbuild,这意味着它将使用 *.csproj 而不是 project.json。包引用现在也存储在 *.csproj 文件中。

    如需了解更多信息,请阅读Announcing .NET Core Tools MSBuild “alpha” on the .NET BlogHigh level overview of changes in CLI Preview 3 in .NET Documentation

    例如,如果你的 project.json 中有这个:

    "dependencies": {
      "Microsoft.NETCore.App": {
        "type": "platform",
        "version": "1.0.0"
      },
      "Newtonsoft.Json": "9.0.1"
    }
    

    您现在将拥有 *.csproj,其中包含:

    <PackageReference Include="Microsoft.NETCore.App">
      <Version>1.0.1</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.NET.Sdk">
      <Version>1.0.0-alpha-20161104-2</Version>
      <PrivateAssets>All</PrivateAssets>
    </PackageReference>
    <PackageReference Include="Newtonsoft.Json">
      <Version>9.0.1</Version>
    </PackageReference>
    

    【讨论】:

    • 我确信从 project.json 切换到 *.csproj 是有正当理由的,但是从我现在的位置来看... project.json 的理解要容易 10 倍从编码的角度看一眼...
    • @KevinFrancis 请记住,我在这里展示的 csproj 片段已经过时了。您不再引用Microsoft.NETCore.App,SDK 只是根元素上的单个属性,并且可以使用属性指定包版本。在我看来,即使您不喜欢 XML 语法,增加的功能和与所有其他项目类型的统一也是值得的。
    • @svick 你知道我在哪里指定我想在此更改后从我的控制台应用程序中创建一个 exe 文件吗?以前,您可以在project.json 中执行此操作。现在,编译我的控制台应用程序只会在 /Debug 文件夹中创建一个 DLL。
    • @svick 不得不在外部更改csproj 是不是有点笨拙?
    【解决方案2】:

    参考给定的链接

    https://docs.microsoft.com/en-us/dotnet/core/tools/project-json-to-csproj

    Project.json

    {
      "buildOptions": {
        "warningsAsErrors": true,
        "nowarn": ["CS0168", "CS0219"],
        "xmlDoc": true,
        "preserveCompilationContext": true,
        "outputName": "Different.AssemblyName",
        "debugType": "portable",
        "allowUnsafe": true,
        "define": ["TEST", "OTHERCONDITION"]
      }
    }
    

    解决方案->右键单击->编辑 Project.csporj

    <PropertyGroup>
      <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
      <NoWarn>$(NoWarn);CS0168;CS0219</NoWarn>
      <GenerateDocumentationFile>true</GenerateDocumentationFile>
      <PreserveCompilationContext>true</PreserveCompilationContext>
      <AssemblyName>Different.AssemblyName</AssemblyName>
      <DebugType>portable</DebugType>
      <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
      <DefineConstants>$(DefineConstants);TEST;OTHERCONDITION</DefineConstants>
    </PropertyGroup>
    

    【讨论】:

      【解决方案3】:

      在解决方案资源管理器中:

      1. 右键单击项目
      2. 选择编辑 (YourProjectNameHere).csproj

      应该会出现一个窗口,允许您查看 .csproj 的 XML 版本。依赖项将在 PackageReference 描述下列出。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-24
        • 2019-08-08
        • 1970-01-01
        • 2017-04-23
        • 2018-04-27
        • 2011-03-27
        相关资源
        最近更新 更多