私は ASP.NET Core SignalR Repo をローカルに複製し、以下の環境からソリューションを開いてみました。
_ ide _
Microsoft Visual Studio Enterprise 2015
Version 14.0.25431.01 Update 3
Microsoft .NET Framework
Version 4.6.01055
ドットネット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:プロジェクトのデフォルトの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
を使いました。しかし、Microsoftで社内でかなりの審議を行った後、彼らはcsproj
に戻ることを決定しましたが、はるかにクリーンで更新されたフォーマットで。ただし、この新しい形式はVS2017でのみサポートされています。
プロジェクトを開きたいが、正式なVS2017リリースを3月7日まで待てない場合は、代わりにVisual Studio Codeを使用できます。
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属性があることを見てください。
<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>
以下のようにコメントアウトしました。
<!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
</None>-->
以下のようにVersionがcsproj xmlにあることを確認してください(追加のPackageReference行は簡潔にするために削除されています)。
Version属性を取り除きました
<PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" />
ビンゴ! Visual Studioの一方向アップグレードが開始されました。 VSに魔法をさせよう!
これが他のコード旅行者に役立つことを願っています:-D
@ DavidGの答えは正しいですが、コマンドラインからビルドしているのであれば、同等の解決策は適切なバージョンのmsbuild
を使用していることを確認することです(この場合はそれが必要です)。バージョン15)。
使用しているバージョンを確認するにはmsbuild /?
を実行し、必要に応じて環境が実行ファイルを取得してツールの正しい場所を指す(または正しい場所を指す)場所を確認するにはwhere msbuild
を実行します。
here から最新のMSBuildツールをダウンロードしてください。
VSTSで.Net Core 2.0アプリをビルドしようとしているときにこのエラーが発生する場合は、ビルド定義がHosted VS2017
エージェントキューを使用していることを確認してください。
PowerShellからmsbuildを実行しているときにも同じメッセージが表示されました。
dotnet msbuild "./project.csproj"
は私のために働きました。