项目的默认XML名称空间必须是MSBuild XML名称空间
我在本地克隆ASP.NET Core SignalR Repo,然后尝试从以下环境中打开解决方案。项目的默认XML名称空间必须是MSBuild XML名称空间
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
: error : The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please addxmlns="http://schemas.microsoft.com/developer/msbuild/2003"
to the element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format...\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代码。
我对历史非常熟悉,我想我只是假设这会工作。错误似乎不是太过分了离开了可能的领域。如果没有** Visual Studio 2017 RC **位,您是否确定无法在最短的时间内完成这项工作? –
不符合VS2015,没有。这就是为什么我提供VS Code作为替代方案。至少你只有一个星期等待VS2017被释放:) – DavidG
这是真的,谢谢!如果我要使用** VS Code **,我需要** DOT NET CLI **的哪个版本? –
@ DavidG的回答是正确的,但我想补充一点,如果您是从命令行构建的,等效的解决方案是确保您使用的合适版本为msbuild
(在这种情况下,它需要是版本15)。
运行msbuild /?
查看您正在使用哪个版本或where msbuild
来检查环境从哪个位置获取可执行文件并在必要时更新(或指向正确的位置)工具。
从here下载最新的MSBuild工具。
我就遇到了这个问题,同时在Visual Studio 2015年原来的解决方案是在2017年VS建立在.NET的核心打开服务织物GettingStartedApplication并于2015年
这里打开的时候是我得到了同样的错误我遵循的步骤来解决问题。
- 右键单击(加载失败)项目并在Visual Studio中编辑。
看到,在项目标签下面一行:
<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">
- 重新加载项目给了我下一个错误(你的可能会不同基于什么是包含在你的项目T)
-
看到,无元素有一个更新的属性如下:
<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" />
宾果! Visual Studio单向升级已启动!让VS做魔术!
希望这有助于另一个代码旅客:-D
尽管做了所有这些工作都是浪费时间,但[链接](https://azure.microsoft.com/en-us/resources/samples/service-fabric-dotnet-getting-started/)你发布到项目中指出VS2015项目位于[vs2015分支](https://github.com/Azure-Samples/service-fabric-dotnet-getting-started/tree/vs2015)。 – DavidG
不错的一个!没有意识到我可以追捕一个2015年的分支。谢谢@DavidG –
哇的人。这就像一个魅力。你是一个救生员兄弟。 。 –
如果收到此错误试图建立在VSTS的.Net核心2.0应用程序,然后确保您的构建定义使用Hosted VS2017
代理队列。
我只是假设我能做到这一点,我不应该这样做?我希望这是向后兼容的。 –
嗯,我得到这个错误后允许VS2017 RTM更新项目格式:-( –