Microsoft Visual Studio

Microsoft Visual Studio 開発時エラー

2025.01.18 演算子 '<' を 'DateOnly?' と 'DateTime' 型のオペランドに適用することはできません

Visual Studio のビルドを実行したところ、次のエラーが発生。

演算子 '<' を 'DateOnly?' と 'DateTime' 型のオペランドに適用することはできません

データベースの定義を DateTime に変更した。

2025.01.18 'TestContext' に 'DtbTest' の定義が含まれておらず、型 'TestContext' の最初の引数を受け付けるアクセス可能な拡張メソッド 'DtbTest' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください

Visual Studio のビルドを実行したところ、次のエラーが発生。

'TestContext' に 'DtbTest' の定義が含まれておらず、型 'TestContext' の最初の引数を受け付けるアクセス可能な拡張メソッド 'DtbTest' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足していないことを確認してください

テーブル名 DtbTest を DtbTests に変更した。

2025.01.17 プロパティ 'PValue' は、プロパティ コンテンツのコード シリアル化を構成しません

プロパティを扱うコードを記述した。

public string PValue { get; set; }

ところが、次のエラーが発生。

プロパティ 'PValue' は、プロパティ コンテンツのコード シリアル化を構成しません

次のように記述したところ、エラーが消えた。

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public string PValue { get; set; }

.NET 9 の破壊的変更のようである。

破壊的変更: 新しいセキュリティ アナライザー - .NET | Microsoft Learn

2025.01.14 No project was found. Change the current working directory or use the --project option.

dotnet ef コマンドを実行したところ、次のエラーが発生。

No project was found. Change the current working directory or use the --project option.

*.csproj フォルダに移動して、実行したところ、解決した。

2025.01.14 Build failed. Use dotnet build to see the errors.

dotnet コマンドを実行したところ、次のエラーが発生。

Build failed. Use dotnet build to see the errors.

指示に従って、dotnet build コマンドを実行したところ、詳細なエラー情報が表示されたので、解決できた。

2025.01.14 A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - パイプの他端にプロセスがありません。)

dotnet コマンドを実行したところ、次のエラーが発生。

A connection was successfully established with the server, but then an error occurred during the login process. (provider: Shared Memory Provider, error: 0 - パイプの他端にプロセスがありません。)

SQL Server 2022 構成マネージャーを起動して、名前付きパイプを有効にした。また、単にデータベースが存在していないときにも発生する。

2025.01.14 A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 信頼されていない機関によって証明書チェーンが発行されました。)

dotnet コマンドを実行したところ、次のエラーが発生。

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - 信頼されていない機関によって証明書チェーンが発行されました。)

SQL Server の接続に TrustServerCertificate=True; を追加した。

2025.01.14 error MSB4803: タスク "ResolveComReference" は .NET Core バージョンの MSBuild ではサポートされていません。.NET Framework バージョンの MSBuild をご使用 ください。詳細については、https://aka.ms/msbuild/MSB4803 をご覧ください。

dotnet ef コマンドを実行したところ、次のエラーが発生。

error MSB4803: タスク "ResolveComReference" は .NET Core バージョンの MSBuild ではサポートされていません。.NET Framework バージョンの MSBuild をご使用 ください。詳細については、https://aka.ms/msbuild/MSB4803 をご覧ください。

(臨時の対応策)
1. COM 参照を解除する
2. COM 参照を使用しているコードがエラーになっているので、コメントアウトする。
3. dotnet ef コマンドを実行する。
4. コードのコメントアウトを外す。
5. COM 参照を再度行う。

(本対応)
1. COM 参照を解除する。
2. COM 参照を使用しているコード部分を別 EXE などで作成し、呼び出す方式を採用する。

2024.02.28 パッケージ Microsoft.EntityFrameworkCore 8.0.2 は net6.0-windows7.0 (.NETCoreApp,Version=v6.0) と互換性がありません。

.NET Core 関連のパッケージをアップデートしようとしたところ、次のエラーが発生。

エラー NU1202 パッケージ Microsoft.EntityFrameworkCore 8.0.2 は net6.0-windows7.0 (.NETCoreApp,Version=v6.0) と互換性がありません。 パッケージ Microsoft.EntityFrameworkCore 8.0.2 がサポートするもの: net8.0 (.NETCoreApp,Version=v8.0) IXB11 C:\Users\tomoki\Dropbox\Data\Develop\IXB11_出資\Project8_Original\IXB11\IXB11.csproj 1

原因は、プロジェクトが .NET 6.0 に設定されていたため。.NET 8.0 に変更してから更新をかけたところ、うまくいった。

2024.02.24 EntitySet/AssociationSet にマッピングが指定されていません - DtbTabe1。

テーブルを SQL Server 上で作成し、Visual Studio にマッピングした後、うっかり、テーブルを削除してしまった。このような場合にエラーが発生する模様。

再度テーブルを作成したが、正常に認識されなかったため、テーブルを一度削除したところ、今度は次のエラーが発生。

エラー 変換を実行しています: System.Runtime.InteropServices.COMException (0x80004005): 項目 'DtbTabe1.cs' を削除できません。

どうしようもなくなったので、edmx を再作成して解決した。

2024.01.15 オブジェクト参照がオブジェクト インスタンスに設定されていません。

ClickOnce の情報を取得しようとしたときにエラーが発生した。

オブジェクト参照がオブジェクト インスタンスに設定されていません。

原因は URL パラメータを渡していないこと。ClickOnce 作成時にチェックをオンにすることで解決する。

2024.01.14 Your startup project 'TestProject' doesn't reference Microsoft.EntityFrameworkCore.Design.

ビルドしたところ、エラーが発生した。

Your startup project 'TestProject' doesn't reference Microsoft.EntityFrameworkCore.Design. This package is required for the Entity Framework Core Tools to work. Ensure your startup project is correct, install the package, and try again.

次のコマンドを実行して、必要なパッケージをインストールして解決した。

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.EntityFrameworkCore.Design

2024.01.14 System.AggregateException: 1 つ以上のエラーが発生しました。

ビルドをしたところ、エラーが発生した。

System.AggregateException: 1 つ以上のエラーが発生しました。 ---> Microsoft.WebTools.Shared.Exceptions.WebToolsException: 発行でエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。
--- 内部例外スタック トレースの終わり ---
---> (内部例外 #0) Microsoft.WebTools.Shared.Exceptions.WebToolsException: 発行でエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。<---

Microsoft.WebTools.Shared.Exceptions.WebToolsException: 発行でエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。

何度かビルドを繰り返せば、解決した。

データベースのスキャホールディング

dotnet ef コマンドを実行したところ、エラーが発生した。

C:\Users\user01>dotnet ef
指定されたコマンドまたはファイルが見つからなかったため、実行できませんでした。
次のような原因が考えられます。
* 組み込みの dotnet コマンドのスペルが間違っている。
* .NET プログラムを実行しようとしたが、dotnet-ef が存在しない。
* グローバル ツールを実行しようとしたが、プレフィックスとして dotnet が付いたこの名前の実行可能なものが PATH に見つからなかった。

Entity FrameWork パッケージをインストールすることで解決する。

C:\Users\user01>dotnet tool install --global dotnet-ef

公開が失敗しました。

2023/10/24 9:06:00
System.AggregateException: 1 つ以上のエラーが発生しました。 ---> Microsoft.WebTools.Shared.Exceptions.WebToolsException: 発行でエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。
--- 内部例外スタック トレースの終わり ---
---> (内部例外 #0) Microsoft.WebTools.Shared.Exceptions.WebToolsException: 発行でエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。<---

Microsoft.WebTools.Shared.Exceptions.WebToolsException: 発行でエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。

===================

exe の出力先がロックされているのが原因。permon.exe で出力先ディレクトリと出力ファイル名を確認してみる。PerfWatson2.exe が関係している可能性大。プロセスを終了するとうまくいく。

2023.09.30 (ClickOnce) 公開に失敗しました。

Visual Studio 2022 で、.NET 6 で開発したアプリを ClickOnce で発行する際、「公開に失敗しました。」というエラーが発生する。

Microsoft.WebTools.Shared.Exceptions.WebToolsException: 発行でエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。

===================
System.AggregateException: 1 つ以上のエラーが発生しました。 ---> Microsoft.WebTools.Shared.Exceptions.WebToolsException: 発行でエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。
--- 内部例外スタック トレースの終わり ---
---> (内部例外 #0) Microsoft.WebTools.Shared.Exceptions.WebToolsException: 発行でエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。<---

Microsoft.WebTools.Shared.Exceptions.WebToolsException: 発行でエラーが発生しました。エラーの原因を特定できませんでした。詳細については、出力ログを確認してください。

===================

Visual Studio を再起動すると、解決する模様。

2023.02.01 要求されたクリップボード操作に成功しませんでした。

Visual Studio 2022 で、大量のデータをクリップボードにコピーする処理を実行すると、「要求されたクリップボード操作に成功しませんでした。」が発生した。

クリップボードにデータを保存する前に、Clipboard.Clear(); を実行することで解決した。

2022.06.26 'Microsoft SQL Server Data Tools' パッケージは正しく読み込まれませんでした。

Visual Studio 2022 で、デバッグしようとすると、以下のメッセージが表示された。

'Microsoft SQL Server Data Tools' パッケージは正しく読み込まれませんでした。

構成の変更または別の拡張機能のインストールが原因で問題が発生している可能性があります。ファイル 'C:\Users\Test\AppData\Roaming\Microsoft\VisualStudio\17.0_5dcddca8\ActivityLog.xml' を調べると、より詳細な情報を取得することができます。

Visual Studio を再起動するとこの問題を解決できる可能性があります。

指示どうり再起動すると、解決した。

2022.06.23 別のプロセスで使用されていため、プロセスはファイル~にアクセスできません。

Visual Studio 2022 で、コンパイルする際に、「エラー ディレクトリ "bin\Release\app.publish\" を削除できません。別のプロセスで使用されているため、プロセスはファイル 'C:\Users\test_user\Dropbox\Data\Develop\TestProject\Project\Test\bin\Release\app.publish\Application Files' にアクセスできません。」がよく出現するようになっている。

再度コンパイルすれば、正常なことも多い。

2022.06.08 このドキュメントのシンボルが読み込まれていません

デバッグモードに変更しているにも関わらず、ブレークポイントにヒットしない現象がは発生した。ブレークポイントにマウスポインタを当てると、「このドキュメントのシンボルが読み込まれていません」が表示されていた。

解決方法は、オプション - デバッグ - 全般の「マイ コードのみを有効にする」のチェックを外すこと。

但し、この現象が発生する前に変更していないし、気付くと元に戻っていることもある。

2022.04.12 System.InvalidCastException: '型 'Microsoft.Office.Interop.Excel.ApplicationClass' の COM オブジェクトをインターフェイス型 'Microsoft.Office.Interop.Excel._Application' にキャストできません。

C# で開発したアプリで、Excel 経由で印刷を行う際にエラーが発生した。

System.InvalidCastException: '型 'Microsoft.Office.Interop.Excel.ApplicationClass' の COM オブジェクトをインターフェイス型 'Microsoft.Office.Interop.Excel._Application' にキャストできません。IID '{000208D5-0000-0000-C000-000000000046}' が指定されたインターフェイスの COM コンポーネント上での QueryInterface 呼び出しのときに次のエラーが発生したため、この操作に失敗しました: 要素が見つかりません。 (HRESULT からの例外:0x8002802B (TYPE_E_ELEMENTNOTFOUND))。'

これまで正常に動作していたのだが、突然エラーが発生した。他の環境では正常に動作しているため、開発環境のマシンだけと考えられた。

そこで、appwiz.cpl を開き、Microsoft 365 Apps for enterprise のクイック修復を実行したところ、正常となった。おそらくであるが、Visio をインストールしたことが原因ではないかと推測される。

2020.12.17 C# マネージド デバッグ アシスタント 'ContextSwitchDeadlock' : 'CLR は、COM コンテキスト 0x46a7260 から COM コンテキスト 0x46a71a8 へ 60 秒で移行できませんでした。

C# で開発したアプリを実行中にエラーが発生した。

マネージド デバッグ アシスタント 'ContextSwitchDeadlock' : 'CLR は、COM コンテキスト 0x46a7260 から COM コンテキスト 0x46a71a8 へ 60 秒で移行できませんでした。ターゲット コンテキストおよびアパートメントを所有するスレッドが、ポンプしない待機を行っているか、Windows のメッセージを表示しないで非常に長い実行操作を処理しているかのどちらかです。この状態は通常、パフォーマンスを低下させたり、アプリケーションが応答していない状態および増え続けるメモリ使用を導く可能性があります。この問題を回避するには、すべての Single Thread Apartment (STA) のスレッドが、CoWaitForMultipleHandles のようなポンプする待機プリミティブを使用するか、長い実行操作中に定期的にメッセージをポンプしなければなりません。'

これだけ見ても何を言っているのかわからない。Entity Framework を使用してデータベースアクセスしている箇所でエラーが発生していることはわかる。おそらくクエリーの書き方が問題だと思う。要はタイムアウトだな。

ちなみにもう一度実行するとエラーは発生せず、正常に終了した。

2020.01.18 C# System.Data.Common.DbDataReader ExecuteStoreCommands(System.Data.Entity.Core.EntityClient.EntityCommand, System.Data.CommandBehavior)

C# で開発したアプリでエラーが発生した。

場所 System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand, CommandBehavior behavior)
場所 System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlan.Execute[TResultType](ObjectContext context, ObjectParameterCollection parameterValues)
場所 System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__6()
場所 System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
場所 System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClass7.<GetResults>b__5()
場所 System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
場所 System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
場所 System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
場所 System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()

これまで正常に動作していたので、直感的にデータ量だと推測した。複数のテーブルを join しているが、いわゆる inner join だったので、outer join に変更し、join する範囲を絞ったところ正常に動作するようになった。

2016.02.12 エラー CS1936 ソース型 'DbSet<(tablename)>' のクエリ パターンの実装が見つかりませんでした。'Select' が見つかりません。

Visual Studio 2015 で、データベースに対して、Entity Framework を経由してアクセスするコードを書いている際に「クエリ パターンの実装が見つかりませんでした。'Select' が見つかりません。」エラーが発生した。

このエラーを解決するには、using System.Linq; を追加します。通常、何らかの定義が足りない場合には、マウスカーソルをエラーに充てると、黄色ランプのアイコンが出現して、追加すべきものを提示してくれますが、このケースの場合にはそれがありません。

-Microsoft Visual Studio