0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VS Community2022のC#プロジェクトをGoogleDriveに置いてるとビルド時にエラー

Last updated at Posted at 2024-07-30

結論

Visual Studio Community2022を17.7.6にダウングレードすれば解決。

詳細と駄文

当方、Visual Studio Community 2022で開発するプロジェクトを基本Google Drive上に置きっぱなしにして生きております。
先日、VSCommunity2022のバージョンを更新したところ、C#プロジェクト1のビルド時に以下のエラーが出て何もできなくなりました。

MSB4018    "CreateAppHost" タスクが予期せずに失敗しました。
System.IO.IOException: 要求された操作はユーザー マップ セクションで開いたファイルでは実行できません。

   場所 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   場所 System.IO.MemoryMappedFiles.MemoryMappedFile.CreateCore(SafeFileHandle fileHandle, String mapName, HandleInheritability inheritability, MemoryMappedFileSecurity memoryMappedFileSecurity, MemoryMappedFileAccess access, MemoryMappedFileOptions options, Int64 capacity)
   場所 System.IO.MemoryMappedFiles.MemoryMappedFile.CreateFromFile(FileStream fileStream, String mapName, Int64 capacity, MemoryMappedFileAccess access, MemoryMappedFileSecurity memoryMappedFileSecurity, HandleInheritability inheritability, Boolean leaveOpen)
   場所 Microsoft.NET.HostModel.ResourceUpdater.Update()
   場所 Microsoft.NET.HostModel.AppHost.HostWriter.<>c__DisplayClass2_0.<CreateAppHost>b__1()
   場所 Microsoft.NET.HostModel.RetryUtil.RetryOnIOError(Action func)
   場所 Microsoft.NET.HostModel.AppHost.HostWriter.CreateAppHost(String appHostSourceFilePath, String appHostDestinationFilePath, String appBinaryFilePath, Boolean windowsGraphicalUserInterface, String assemblyToCopyResourcesFrom, Boolean enableMacOSCodeSign)
   場所 Microsoft.NET.Build.Tasks.CreateAppHost.ExecuteCore()
   場所 Microsoft.NET.Build.Tasks.TaskBase.Execute()
   場所 Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   場所 Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()    ***    C:\Program Files\dotnet\sdk\8.0.303\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.targets    709

(一部伏字)

Google Drive外であればエラーは出ないので、完全にネットワークドライブがらみ。(おそらくOne DriveやRAM Diskでも起こると推測)

Microsoft様は非常にクソな面倒なことをやらかしてくれたので、wingetを用いてダウングレードしましょう。
Visual Studio Installer単体でできないのもクソ
【VS2022】ダウングレードwinget で Visual Studio 2022 のバージョンをダウングレードする方法あたりを参考に。

ダウングレード手順の簡単な説明

リンクが死んでると悲しい思いをするので一応記載。

  1. wingetがインストールされていない人はマイクロソフトストアからアプリインストーラーというアプリをインストール
  2. 以下のコマンドでインストール可能なバージョンの一覧表示
    winget show Microsoft.VisualStudio.2022.Community --versions
  3. 以下のコマンドでVSCommunity2022をアンインストール
    winget uninstall --id Microsoft.VisualStudio.2022.Community
  4. 以下のコマンドでバージョンを指定してインストール
    winget install --id Microsoft.VisualStudio.2022.Community --version 17.7.6

現状確認済みのバージョンは以下。2

バージョン 大丈夫か
17.3.2(古すぎ) OK
17.7.6 OK
17.8.0 NG
17.8.6 NG
17.10.4 NG
17.10.5 NG

17.8.0は.Net8に初めて対応したバージョンなので早く修正してほしいところ。

  1. 試していないけどC#以外もダメだったりするのだろうか

  2. 追加の情報をお持ちの方はコメントください

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?