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


150

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

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

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


私はできると思いましたが、私がすべきではないと思いますか?これが後方互換であることを願っています。
David Pine

1
まあ、VS2017 RTMがプロジェクト形式を更新できるようにした後、このエラーが発生します:-(
Simon_Weaver

私は...ここで同様のエラーを投稿stackoverflow.com/questions/58336983/...をしかし、私の場合は、既存のものを開こうとしない、新しいprojで始めています、。
joedotnot

回答:


212

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

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

あなたは、プロジェクトを開きたいが、3月7日まで待ちたくない場合は番目の公式VS2017のリリースのために、あなたの代わりにVisual Studioのコードを使用することができます。


私は歴史に非常に精通しています、これがうまくいくと思いました。このエラーは、可能性の領域からかけ離れているようには見えません。Visual Studio 2017 RCビットなしでは、これを最小限の労力で機能させる方法がないことは確かですか?
David Pine

VS2015ではありません。そのため、私はVSコードを代替として提供しました。少なくとも、VS2017がリリースされるまで1週間しかありません:)
DavidG

それは本当です、ありがとう!VS Codeを使用する場合、どのバージョンのDOT NET CLIが必要ですか?
David Pine

2
@ThePartyTurtle公平に言えば、これはVS2015に、サポートされないファイル形式を理解するように求めることになります。
DavidG 2017

44

Visual Studio 2015でService Fabric GettingStartedApplicationを開いているときにこの問題に遭遇しました。元のソリューションはVS 2017の.NET Coreで構築されており、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>-->
    
  • 次のエラーへ:パッケージ参照のバージョンが認識されません 要素<PackageReference>のバージョンが認識されません

  • 以下のようにcsproj xmlにそのバージョンが存在することを確認しました(簡潔にするために、追加のPackageReference行を削除しました)。

  • バージョン属性を取り除きました

    <PackageReference Include="Microsoft.AspNetCore.Diagnostics" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" />
    
  • 私は今次のものを手に入れます: VS自動アップグレード

ビンゴ!Visual Studioの片道アップグレードが始まりました!VSに魔法をかけてもらいましょう!

  • プロジェクトは読み込まれましたが、参照libエラーが発生しました。 ここに画像の説明を入力してください

  • NuGetで削除および置換してプロジェクトを機能させることにより、参照libエラーを個別に修正しました!

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


3
@DavidGすべてのプロジェクトにVS2015ブランチがあるわけではないので、それは時間の無駄ではありません。
usr-bin-drinking

プロジェクトのフォルダを再び表示するには、ソリューションエクスプローラのツールバーの[すべてのファイルを表示]をクリックする必要があることを追加する必要があります。。彼らは、「アウト点在」とあなたは右クリックする必要があり、それぞれのいずれかを選択し、再研究所それらでの「プロジェクトに含める」を選択します表示されます
vapcguy

これらはまさに私が直面した問題でした。
Samra

14

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

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

ここから最新のMSBuildツールをダウンロードします


6

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


.netフレームワークをターゲットとするVS Azure Functionsプロジェクトでも同様の問題がありましたが、コアフォーマットでcsprojファイルを生成しました。この修正は私にとってはうまくいきました。
ElliotSchmelliot 2018年

3

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

dotnet msbuild "./project.csproj" 私のために働いた。


これは基本的に同じ答えである、この1。msbuildの最新バージョンを使用している必要があります。
DavidG

0

プロジェクトが大きくない場合、

1-フォルダープロジェクトの名前を変更する

2-同じプロジェクトで新しいプロジェクトを作成する(名前を変更する前)

3-既存のファイルを古いプロジェクトから新しいプロジェクトに追加します(完全に同じ、同じフォルダー、同じ名前など)

4-新しいプロジェクトファイル(xmlとして)と古いプロジェクトを開きます

5-新しいプロジェクトファイル(xml content)をコピーし、古いプロジェクトファイルに貼り付けます

6-古いプロジェクトを削除する

7-古いフォルダプロジェクトの名前を古い名前に変更します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.