唯一のビルドステップがランナータイプのVisual Studio(sln)であるTeamCityビルドを実行すると、次のエラーが発生します。
C:\TeamCity\buildAgent\work\4978ec6ee0ade5b4\Test\Code\Test.sln(2, 1): error MSB4025: The project file could not be loaded. Data at the root level is invalid. Line 2, position 1.
これは、TeamCity Professional 8.1.1(ビルド29939)を実行する専用CIサーバー上にあります。このサーバーでは、他に正常に実行されているビルドがいくつかあります。
奇妙なことに、同じビルドが私の開発マシンのTeamCityで正常に実行されます。私は同様の質問に 回答 に従って、指定されたフォルダをコピーしましたが、それは役に立ちませんでした。
開発/開発ボックスで実行されているビルドに加えて、Visual Studioでソリューションを開いて問題なくビルドしたので、プロジェクト/ソリューションファイルが無効ではないと確信しています。
助言がありますか?
私はこれを修正しました。
Test.slnファイル内で、閉じられていないProjectまたはEndProjectタグを探します。私たちにとって、EndProjectは欠落しており、それはteamcityで壊れましたが、Visual Studioでは問題はありませんでした。
TeamCityエラーメッセージは、根本的な原因がいくつもある場合に発生するようです。私の場合、GlobalSection(NestedProjects)セクション内の行が、ソリューションファイルで定義されているプロジェクトに関連していないプロジェクトGUIDを参照しているため、問題が発生しました。
以前の投稿と同様に、Visual Studioでのビルドに問題はありませんでした。 msbuildを使用してビルドしたときに実際の問題が何であるかを知ることができる、より役立つエラーメッセージのみが表示されました。
https://therightjoin.wordpress.com/2014/07/04/msb4025-the-project-file-could-not-be-loaded-data-at-the-root-level-is-invalidを参照してください-error-when-building-ssdt-project-in-teamcity 別の例、およびmsbuildの使用が真の問題の特定に役立つ場合。
私たちの場合、それはソリューションファイル内の重複したプロジェクト参照でした(ほぼ同時のコミットと自動マージが原因です)。
別のケースでは
空白行がありました。空白行が削除されていることを確認してください!
これが他の人にも役立つことを願っています!
ジェンキンスでも同じエラーが発生しました。ルートJenkinsフォルダーがC:\ Program Files(x86)\に設定されており、binおよびobjディレクトリへの書き込みアクセス権がないことがわかりました。
エラー:エラーMSB4025:プロジェクトファイルをロードできませんでした。ルートレベルのデータは無効です。
私は管理者としてcmdを起動し、これを実行しました: "C:\ Program Files(x86)\ MSBuild\14.0\Bin\MSBuild.exe" "C:\ Program Files(x86)\ Jenkins\workspace\BuildBI_1\Reports\Test\ReportsTests .sln "/ t:Build/p:RunOctoPack = true
そして、それは私にbinとobjに書き込むことができないという手がかりを与えました。
私の場合、マージ後、.slnファイルで、それは下の行の不一致でした
GlobalSection(NestedProjects) = preSolution
{6B971E15-6B61-4AA8-9B93-9639C23269C3} = {9A14E7EF-3FA1-4B9A-B413-C550B3E5AC62}
{54D14F01-D576-4DE6-9404-D21AD0DC4916} = {9A14E7EF-3FA1-4B9A-B413-C550B3E5AC62}
... (was some extra entry here )
...
EndGlobalSection
セクション。はっきり言って、マージ後に追加された行がいくつかありました。したがって、マージした場合は、2つのソリューションファイルを手動で比較してください。両方のファイルの合計行番号から始めることができます。
私たちの状況では、問題はそのマシンにインストールされていないToolsVersionを指定することでした。 (VS2015には14ありますが、VS2017にはデフォルトではありません)
これは私にとってうまくいきました-インストールできます Visual Studio 2017のビルドツール 、C++ツール、Windows 10 SDKとMSBuild、およびセットを選択してください。