我在本地克隆了ASP.NET Core SignalR Repo,并尝试在以下环境中打开解决方案。
IDE
BiFunction
DOT NET CLI
Microsoft Visual Studio Enterprise 2015
Version 14.0.25431.01 Update 3
Microsoft .NET Framework
Version 4.6.01055
我最终看到了很多这类错误消息:
λ 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: Windows OS Version: 6.1.7601 OS Platform: Windows RID: win7-x64
:错误:项目的默认XML命名空间必须是 MSBuild XML命名空间。如果项目是在MSBuild 2003中创作的 格式,请添加..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj
到 元件。如果项目是在旧的1.0或 1.2格式,请将其转换为MSBuild 2003格式。xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
我想知道如何以正确的方式解决这个问题。
答案 0 :(得分:181)
您尝试打开的项目采用新的.Net Core csproj格式。这意味着您需要使用支持这种新格式的Visual Studio 2017。
对于一些历史记录,最初.Net Core使用<link href="https://necolas.github.io/normalize.css/5.0.0/normalize.css" rel="stylesheet"/>
<div class="wrapper">
<div>
<h1>min-height: 100vh;</h1>
<h2>why is there a scrollbar here?</h2>
</div>
<div>
Be sure to expand window.
<a href="#">skill one</a>
<a href="#">skill one</a>
<a href="#">skill one</a>
<a href="#">skill one</a>
</div>
</div>
而不是project.json
。然而,经过微软的一些内部审议后,他们决定回到*.csproj
,但采用更清晰,更新的格式。但是,这种新格式仅在VS2017中受支持。
如果您想打开项目但又不想等到3月7日正式发布VS2017,那么您可以使用Visual Studio代码。
答案 1 :(得分:29)
我在Visual Studio 2015中打开Service Fabric GettingStartedApplication时遇到了这个问题。原始解决方案是在VS 2017中的.NET Core上构建的,我在2015年开放时遇到了同样的错误。
以下是我解决问题的步骤。
在Project标记中看到以下行:<Project Sdk="Microsoft.NET.Sdk.Web" >
按照错误消息中显示的说明将xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
添加到此标记
现在应该是这样的:
<Project Sdk="Microsoft.NET.Sdk.Web" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
看到没有元素有更新属性如下:
<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
评论如下。
<!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>-->
看到版本在csproj xml中如下所示(为简洁起见,删除了附加的PackageReference行)</ p>
剥离版本属性
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" />
Bingo!视觉工作室单向升级开始了!让VS做神奇!
希望这有助于另一位代码旅行者:-D
答案 2 :(得分:11)
@DavidG的答案是正确的,但我想补充一点,如果您是从命令行构建的,那么等效的解决方案是确保您使用的是msbuild
的相应版本(在此特殊情况,它需要是版本15)。
运行msbuild /?
以查看您正在使用的版本或where msbuild
以检查环境从可执行文件中获取的位置,并在必要时更新(或指向正确的位置)工具。< / p>
从here下载最新的MSBuild工具。
答案 3 :(得分:6)
如果在尝试在VSTS上构建.Net Core 2.0应用程序时遇到此错误,请确保您的构建定义使用Hosted VS2017
代理队列。
答案 4 :(得分:2)
当我从Powershell运行msbuild时,我得到了相同的消息。
dotnet msbuild "./project.csproj"
为我工作。
答案 5 :(得分:0)
如果项目不大,
1-更改文件夹项目的名称
2-使用相同的项目创建一个新项目(重命名之前)
3-将旧项目中的现有文件添加到新项目中(完全相同,相同的文件夹,相同的名称...)
4-打开新项目文件(如xml)和旧项目
5-复制新的项目文件(xml内容)并将其粘贴到旧的项目文件中
6-删除旧项目
7-将旧文件夹项目重命名为旧名称