--- lang: ja-jp breaks: true --- # MSBuild 「`error MSB4018: "ResolveManifestFiles" タスクが予期せずに失敗しました。`」「`net48 は無効なカルチャ識別子です。`」とビルドエラーになる 2022-07-05 ```shell= 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: "ResolveManifestFiles" タスクが予期せずに失敗しました。 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: System.Globalization.CultureNotFoundException: カルチャはサポートされていません。 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: パラメーター名:name 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: net48 は無効なカルチャ識別子です。 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: 場所 System.Globalization.CultureInfo..ctor(String name, Boolean useUserOverride) 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: 場所 Microsoft.Build.Tasks.ResolveManifestFiles.GetItemCulture(ITaskItem item) 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: 場所 Microsoft.Build.Tasks.ResolveManifestFiles.GetOutputAssemblies(List`1 publishInfos, List`1 assemblyList) 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: 場所 Microsoft.Build.Tasks.ResolveManifestFiles.GetOutputAssembliesAndSatellites(List`1 assemblyPublishInfos, List`1 satellitePublishInfos) 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: 場所 Microsoft.Build.Tasks.ResolveManifestFiles.Execute() 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: 場所 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 3>C:\Program Files\Microsoft Visual Studio\2022\Professional\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(4417,5): error MSB4018: 場所 Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() ``` ## 旧形式csprojに以下の設定があると発生する模様。 ```xml= <PropertyGroup> <GenerateManifests>true</GenerateManifests> </PropertyGroup> ``` ![](https://i.imgur.com/HTw8LJA.png) ## ほかの人もなんか質問している > Visual Studio 2022 Build Fail: "ResolveManifestFiles", CultureNotFoundException > https://stackoverflow.com/questions/69908135/visual-studio-2022-build-fail-resolvemanifestfiles-culturenotfoundexception/70861654 > > I did some research and finally I found the problematic code in my solution. > > I have 198 Projects in my solution, in 197 of them is the line [assembly: AssemblyCulture("")] disabled: //[assembly: AssemblyCulture("")] or the line does not exist at all inside the Assembly.cs. > > But in one of my (base) projects I found this: [assembly: AssemblyCulture("en-US")] > > After I changed it to: //[assembly: AssemblyCulture("en-US")] everything works fine. ## やってみる。 全て、`[assembly: AssemblyCulture("")]`だったので、`//[assembly: AssemblyCulture("")]` 変更してみたが、特に変化は無し。 ## とりあえず解決 `Microsoft.ReportViewer.WinForms.dll` の `150.900.148` をプロジェクトに内包して使用していたが、これがあると発生する為、NuGetパッケージから最新版を参照して使用するようにしたところ解決。 ```xml= <ItemGroup> <PackageReference Include="Microsoft.SqlServer.Types" /> <PackageReference Include="Microsoft.ReportingServices.ReportViewerControl.Winforms" /> <PackageReference Include="Microsoft.ReportingServices.ReportViewerControl.WebForms" /> </ItemGroup> ``` #### Directory.Build.targets ```xml= <Project> <ItemGroup> <PackageReference Update="Microsoft.SqlServer.Types" Version="14.0.1016.290" /> <PackageReference Update="Microsoft.ReportingServices.ReportViewerControl.Winforms" Version="150.1484.0" /> <PackageReference Update="Microsoft.ReportingServices.ReportViewerControl.WebForms" Version="150.1484.0" /> </ItemGroup> </Project> ``` ###### tags: `MSBuild` `ResolveManifestFiles` `CultureNotFoundException` `net48 は無効なカルチャ識別子です。`