项目的默认XML名称空间必须是MSBuild XML名称空间
我在本地克隆了ASP.NET Core SignalR Repo ,并尝试从以下环境中打开解决scheme。
IDE
Microsoft Visual Studio Enterprise 2015 Version 14.0.25431.01 Update 3 Microsoft .NET Framework Version 4.6.01055
DOT NET CLI
λ 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
我最终看到了很多这样的错误信息:
..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj
:错误:项目的默认XML命名空间必须是MSBuild XML命名空间。 如果项目是以MSBuild 2003格式编写的,请将xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
添加到元素中。 如果项目是以旧的1.0或1.2格式编写的,请将其转换为MSBuild 2003格式。..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj
我想知道如何解决这个正确的方法。
您尝试打开的项目是新的.Net Core csproj格式。 这意味着您需要使用支持这种新格式的Visual Studio 2017。
有一点历史,最初.Net Core使用project.json
而不是*.csproj
。 但是,在微软进行了相当多的内部审议之后,他们决定回到csproj
但是采用了更清晰和更新的格式。 但是,这种新格式仅在VS2017中受支持。
如果你想打开项目,但不想等到3月7日才能发布正式的VS2017版本,那么你可以使用Visual Studio代码。
@ DavidG的回答是正确的,但是我想补充一点,如果你是从命令行构build的,等价的解决scheme是确保你使用了合适的版本的msbuild
(在这种情况下,它需要版本15)。
运行msbuild /?
看你正在使用哪个版本,或者where msbuild
在where msbuild
检查环境从哪个位置取得可执行文件并在必要时更新(或指向正确的位置)工具。
从这里下载最新的MSBuild工具。
我在Visual Studio 2015中打开Service Fabric GettingStartedApplication时遇到了这个问题。最初的解决scheme是在VS 2017中的.NET Core上构build的,在2015年打开时遇到了同样的错误。
以下是我为解决问题所遵循的步骤。
- 右键点击(加载失败)项目并在Visual Studio中编辑。
-
在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元素有一个更新属性如下:
<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views"> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </None>
-
评论如下。
<!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views"> <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory> </None>-->
-
到下一个错误:包参考中的版本无法识别
-
看到版本在csproj xml中有如下(为了简洁,附加的PackageReference行被删除)
-
剥离了版本属性
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" /> <PackageReference Include="Microsoft.AspNetCore.Mvc" />
-
我现在得到以下内容:
答对了! 视觉工作室单向升级踢了! 让VS做魔术!
-
该项目加载,但与参考库错误。
-
通过在NuGet中删除和replace来修复引用lib错误,以使项目正常工作!
希望这有助于另一位代码旅行者:-D