web-dev-qa-db-ja.com

プロジェクトの既定のXML名前空間は、MSBuild XML名前空間である必要があります。

私は 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

これを正しい方法で修正する方法を知りたいです。

115
David Pine

開こうとしているプロジェクトは、新しい.Net Core csproj形式です。つまり、この新しい形式をサポートするVisual Studio 2017を使用する必要があります。

ちょっとした歴史のために、.Net Coreは当初project.jsonの代わりに*.csprojを使いました。しかし、Microsoftで社内でかなりの審議を行った後、彼らはcsprojに戻ることを決定しましたが、はるかにクリーンで更新されたフォーマットで。ただし、この新しい形式はVS2017でのみサポートされています。

プロジェクトを開きたいが、正式なVS2017リリースを3月7日まで待てない場合は、代わりにVisual Studio Codeを使用できます。

180
DavidG

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">
  • プロジェクトをリロードすると、次のエラーが発生しました(プロジェクトに含まれている内容によって、あなたのものは異なる場合があります)。

"Update" element <None> is unrecognized

  • 以下のようにNone要素にupdate属性があることを見てください。

    <None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>
    
  • 以下のようにコメントアウトしました。

    <!--<None Update="wwwroot\**\*;Views\**\*;Areas\**\Views">
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </None>-->
    
  • 次のエラーについて:パッケージ参照のバージョンが認識されない Version in element <PackageReference> is unrecognized

  • 以下のようにVersionがcsproj xmlにあることを確認してください(追加のPackageReference行は簡潔にするために削除されています)。

  • Version属性を取り除きました

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
    
  • 私は今、次のようになります: VS Auto Upgrade

ビンゴ! Visual Studioの一方向アップグレードが開始されました。 VSに魔法をさせよう!

  • プロジェクトはロードされましたが、参照ライブラリエラーが発生しました。 enter image description here

  • プロジェクトを機能させるためにNuGetで削除して置き換えることで、参照ライブラリのエラーを個別に修正しました。

これが他のコード旅行者に役立つことを願っています:-D

29
Jersey_Guy

@ DavidGの答えは正しいですが、コマンドラインからビルドしているのであれば、同等の解決策は適切なバージョンのmsbuildを使用していることを確認することです(この場合はそれが必要です)。バージョン15)。

使用しているバージョンを確認するにはmsbuild /?を実行し、必要に応じて環境が実行ファイルを取得してツールの正しい場所を指す(または正しい場所を指す)場所を確認するにはwhere msbuildを実行します。

here から最新のMSBuildツールをダウンロードしてください。

11
Nikita G.

VSTSで.Net Core 2.0アプリをビルドしようとしているときにこのエラーが発生する場合は、ビルド定義がHosted VS2017エージェントキューを使用していることを確認してください。

6
Scotty.NET

PowerShellからmsbuildを実行しているときにも同じメッセージが表示されました。

dotnet msbuild "./project.csproj"は私のために働きました。

1
you_rule