使用 Visual Studio 2017 的 .NET Core 解决方案上没有 project.json、global.json ... 等
Posted
技术标签:
【中文标题】使用 Visual Studio 2017 的 .NET Core 解决方案上没有 project.json、global.json ... 等【英文标题】:there is no project.json, global.json ... etc on .NET Core Solution with Visual Studio 2017 【发布时间】:2017-08-04 09:46:20 【问题描述】:我做了一个项目
File -> New -> Project -> Visual C# -> Web -> ASP.NET Core Web Application
(.NET Core) -> Empty -> OK
但是没有解决方案和src目录,也没有project.json和web.config等。
我参考了一本使用Visual Studio 2015
的书。这本书的例子有我告诉过的所有文件和目录。但我没有(我使用的是 VS 2017,因为我找不到 .NET Core for VS 2015)。
如何制作这些文件和目录? 我要手动制作这些吗?
【问题讨论】:
没有 project.JSON 了。但是应该有一个解决方案,因为您刚刚创建了一个 【参考方案1】:.NET Core 正在以稍快的速度改变其内部结构(尽管它现在似乎已经安定下来),从而使那里的许多教程都过时了。 Since mid-2016,project.json 已被转储以支持“your-app-name”.csproj 文件。
如果您正在学习教程或书籍,那么对于您应该在 project.json 中编写的任何内容,您现在必须将其写入 csproj 文件,格式略有不同。
如果我在学习教程时必须弄乱 project.json,我会使用 this official migration guide。
【讨论】:
哦!我会记住的!而且,在我的解决方案中,也没有 *.csproj 文件......我找不到......你能帮我找到它吗?? @wallah 通过 Windows 资源管理器查看实际目录,而不是从 Visual Studio 中查看。【参考方案2】:.NET Core(和其他团队)已决定放弃 project.json
并返回 MSBuild 和 *.csproj
。
因此,.net 核心堆栈中不再存在 project.json
或 global.json
。project.json
的替代方案是 *.csproj
,global.json
的替代方案是 *.sln
。
Old csproj to new csproj: Visual Studio 2017 upgrade guidefor more info
更新:(基于 Stajs 评论)global.json 仍在堆栈中,但仅用于定义 SDK 版本。
【讨论】:
这是个坏消息 :( 更正:global.json
仍在堆栈中,但仅用于定义 SDK 版本。
@Stajs,升级到 CLI 工具的 v15.4.4 后,您可以在项目属性组中定义 SDK 版本:<PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> <RuntimeFrameworkVersion>2.0.3</RuntimeFrameworkVersion> </PropertyGroup>
@Soren,我阅读the docs 的方式,这些属性都不是 SDK 版本。我很确定现在每个人都理解<TargetFramework>
。 <RuntimeFrameworkVersion>
是运行时,独立于 SDK,例如SDK 2.1.3 includes runtime 2.0.4。 SO 和 GitHub 讨论可能会有帮助。以上是关于使用 Visual Studio 2017 的 .NET Core 解决方案上没有 project.json、global.json ... 等的主要内容,如果未能解决你的问题,请参考以下文章
如何设置 TFS 2013 以使用 Visual Studio 2013 或 Visual Studio 2017 构建
使用以前版本的 Visual Studio 的 devenv 从 VS2017 测试 Visual Studio 扩展不起作用