質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Q&A

解決済

1回答

238閲覧

インストーラから作成された.NET 6 Windows Forms アプリで Microsoft.Data.SqlClient がサポートされていないプラットフォームというエラーがでます

asuka77728

総合スコア4

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

2グッド

1クリップ

投稿2024/04/09 05:54

実現したいこと

visual studio .net6  のwinフォームで作成したアプリのインストーラを作成したい。

開発環境:

  • Visual Studio 2022 Version 17.9.3
  • C#.NET 6.0
  • Windows 10 x64

[行ったこと]

以下のサイトやyoutube動画を参考にしました。
https://zenn.dev/overdrive1708/articles/howto-vs2022-create-application-installer
https://www.youtube.com/watch?v=NOkBUoP54b8&t=234s

setup project から、インストーラの作成と、アプリのインストールまではできたのですが、インストールされたアプリを実行したところ、下記のエラーが出ます。
「System.PlatformNotSupportedException: Microsoft.Data.SqlClient is not supported on this platform.」

詳細を確認すると、このエラーは SqlCommand オブジェクトを初期化しようとするときに発生しました:
>> SqlCommand cmd = new SqlCommand();

開発環境では問題なく動作します。また、プロジェクトを右クリックで発行から作成したexeファイルから実行した時も問題なく実行されます。

アプリケーションは 'Any CPU' でビルドされています

試したことは以下の通りです:

・.NET 6ランタイムがシステムにインストールされていることを確認しました。
・Microsoft.Data.SqlClient パッケージが最新版であることを確認しました(バージョン5.2.0)。
・依存関係の問題がないか、dotnet restore を実行しました。

もしかすると、解決の糸口になるかもしれない現象として、インストールする際に、
「C:\Program Files (x86)」こちらのフォルダにインストールしようとします。原因の解明になるかどうかは分からないですが。

他にどのような原因が考えられるでしょうか?
この問題を解決するためのアドバイスがあれば、ご教示いただけますと幸いです。

TN8001, juner👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2024/04/09 07:25

> インストールする際に、「C:\Program Files (x86)」こちらのフォルダにインストールしようとします。原因の解明になるかどうかは分からないですが。 決め手に欠けるのでコメントのみですが、プロジェクトを Any CPUでビルドしているなら Windows 10 x64 にインストールしようとする場合、「C:\Program Files (x86)」は何かおかしい気がしますね。 インストーラー作成時、ターゲットプラットフォームがx86 でビルドされていたりすることはないでしょうか。 プロジェクトのプロパティから「ビルド」→「全般」の「プラットフォームターゲット」が"Any CPU"であることを確認してみてください。 また、発行(publish)で実行したときにプロセスが64ビットで動作していることも確認してみてください。 それらからまた何か進展があるかもしれません。
asuka77728

2024/04/09 11:42

コメントありがとうございます。 プロジェクトのプロパティからビルドタブのプラットフォームターゲットは 「Any CPU」になっていました。 また、発行(publish)で実行したときのプロセスはタスクマネージャーで確認したところ、64ビットで動作しておりました。 もう一点気が付いたことは、C:\Program Files (x86) にインストールされたexeも実行させてプロセスを確認したところ、64ビットで動作しておりました。(単にタスクマネージャでプロセスの横に32ビットの表示がないというだけの判断ですが) 何か原因分かりますでしょうか?よろしくお願いいたします。
asuka77728

2024/04/09 12:23

TN8001様 コメントありがとうございます リンク先のとおり、deps.jsonファイルも含めてビルドすると、問題なく実行できました! ありがとうございます!! しかし、chatgpt4に1日かけて、問答しても解決せず、こちらに投稿したらすぐに解決するとは… AIがエンジニアの仕事を奪うのか?、という論争がありますが、やはり人間の知恵は偉大であり、エンジニアの仕事が奪われるなどという意見は間違いだなあと痛感しました。 Program Files (x86) にインストールされるという現象は謎のままですが、今回の問題は解決されましたので、解決済みとさせていただきます。 コメントいただきましたお二方、ありがとうございました。
TN8001

2024/04/09 12:33

> リンク先のとおり、deps.jsonファイルも含めてビルドすると、問題なく実行できました! そうですかよかったです^^ お手数ですが質問を「解決済」にしてください。 [ヘルプ|質問をした後に自己解決してしまった](https://teratail.com/help#resolve-myself) > しかし、chatgpt4に1日かけて、問答しても解決せず、 そういうこともままありますよ。表に出てこないだけで^^; ちなみにggったキーワードは以下の通りです。 [setup project PlatformNotSupportedException: Microsoft.Data.SqlClient - Google 検索](https://www.google.co.jp/search?q=setup+project+PlatformNotSupportedException:+Microsoft.Data.SqlClient) 4番目のIssue内にコメントしたリンクがありました。 [Microsoft Visual Studio Installer Projects 2022 EF Core SQL Problem · Issue #2124 · dotnet/SqlClient](https://github.com/dotnet/SqlClient/issues/2124)
asuka77728

2024/04/09 14:56 編集

すみません、解決済みとベストアンサー、ポイント付与など付け方分からず四苦八苦しております。(;^_^A しらべて対応しておきます。  
TN8001

2024/04/09 12:45

どうやったら解決したかを(同様の問題にぶつかった閲覧者にもわかる程度に)簡単にまとめて回答していただき、それをベストアンサーしてください。 わたしは数分ggっただけなので、ポイントは特にいりません^^;
guest

回答1

0

自己解決

リリースビルドの場合: プロジェクトのルートフォルダ\bin\Release\XXXXXXXX に [プロジェクト名].deps.jsonファイルが出力されていました。
このファイルをsetupproject の application folderにコピーして再ビルドするとエラーはなくなりました。

ここには、アプリケーションの正確な依存関係と、バージョンやどこで見つけられるか記載されているため、このファイルをインストーラに含めることでエラーがなくなりました。

投稿2024/04/09 12:31

編集2024/04/09 14:53
asuka77728

総合スコア4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問