【发布时间】:2016-11-20 00:31:48
【问题描述】:
我在 Visual Studio 2017 RC 中没有找到 project.json。这在这个版本中被删除了还是我遗漏了什么?如果它被删除,他们现在如何存储依赖项列表?
【问题讨论】:
标签: project.json
我在 Visual Studio 2017 RC 中没有找到 project.json。这在这个版本中被删除了还是我遗漏了什么?如果它被删除,他们现在如何存储依赖项列表?
【问题讨论】:
标签: project.json
未来,.Net Core 将基于 msbuild,这意味着它将使用 *.csproj 而不是 project.json。包引用现在也存储在 *.csproj 文件中。
如需了解更多信息,请阅读Announcing .NET Core Tools MSBuild “alpha” on the .NET Blog 和High 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>
【讨论】:
Microsoft.NETCore.App,SDK 只是根元素上的单个属性,并且可以使用属性指定包版本。在我看来,即使您不喜欢 XML 语法,增加的功能和与所有其他项目类型的统一也是值得的。
project.json 中执行此操作。现在,编译我的控制台应用程序只会在 /Debug 文件夹中创建一个 DLL。
csproj 是不是有点笨拙?
参考给定的链接
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>
【讨论】:
在解决方案资源管理器中:
应该会出现一个窗口,允许您查看 .csproj 的 XML 版本。依赖项将在 PackageReference 描述下列出。
【讨论】: