C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ターゲットフレームワ−ク

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■91030 / inTopicNo.1)  ターゲットフレームワ−ク
  
□投稿者/ otu (1回)-(2019/05/20(Mon) 14:18:00)

分類:[VB.NET/VB2005 以降] 

VB.NETでWindowsFormアプリをターゲットフレームワ−ク 4.72で作成しました。
使ってもらいたい人に確認したら、実行環境のPCにインストールされている.NET Frameworkは4.7との事。

当然4.7の環境で4.72のアプリは動作しないと思うのですが、開発環境のPCには以下の
ターゲットフレームワ−クしか表示されません。
4.72
4.71
4.61
4.6
以下略

(1)この場合、ターゲットフレームワ−クを4.61でビルドすればOKでしょうか?
(2)アプリのインストールはインストーラを使わず、Releaseフォルダ内のファイルをXCOPY配置するつもりです。
ですので、Frameworkのバージョン対応さえできていれば動作可能と思っているのですが、この認識で合っているでしょうか?

素人の質問ですみませんが、教えてください。

引用返信 編集キー/
■91031 / inTopicNo.2)  Re[1]: ターゲットフレームワ−ク
□投稿者/ 魔界の仮面弁士 (2175回)-(2019/05/20(Mon) 14:37:54)
2019/05/20(Mon) 15:07:47 編集(投稿者)

No91030 (otu さん) に返信
> VB.NETでWindowsFormアプリをターゲットフレームワ−ク 4.72で作成しました。
4.72 ではなく
4.7.2 ですよね。


> 以下のターゲットフレームワ−クしか表示されません。
下記から、対応する Developer Pack を入手して、
再度プロジェクトを開きなおしてみてください。
https://www.microsoft.com/net/targeting



> 実行環境のPCにインストールされている.NET Frameworkは4.7との事。
実行環境のインストールバージョンチェックには、
下記の PowerShell スクリプトレットを使えますね。
https://gallery.technet.microsoft.com/scriptcenter/Determine-which-NET-01a6a4f5


> 当然4.7の環境で4.72のアプリは動作しないと思うのですが
動かせなくも無いですが、合わせた方が良いのは確かです。
相手先の OS はなんでしょうか?

Windows 10 ver1703 の既定のフレームワークが .NET Framework 4.7
Windows 10 ver1709 の既定のフレームワークが .NET Framework 4.7.1
Windows 10 ver1803 の既定のフレームワークが .NET Framework 4.7.2
となっています。(これらの環境には .NET 4〜4.6.2 はインストールできません)

1703 のサポート期限は 2018/10/09
1709 のサポート期限は 2018/10/09
となっていることから、お相手は Windows 10 では無い可能性が高そうです。

Windows 7 SP1 (サポート期限:2020/01/14)もしくは
Windows 8.1 (サポート期限:2023/01/10)をご利用でしょうか。
引用返信 編集キー/
■91032 / inTopicNo.3)  Re[2]: ターゲットフレームワ−ク
□投稿者/ otu (2回)-(2019/05/20(Mon) 14:55:34)
No91031 (魔界の仮面弁士 さん) に返信

早速の返信、ありがとうございます。OSはWindows7です。(開発環境、実行環境共)
僕の日本語表現能力が足りなかったようです。
「開発環境に4.7SDKをインストールして4.7で再ビルドしたらどうか」という回答に読み取れましたが
「開発環境にはインストールなしで4.6.1で再ビルドした場合、4.7環境で動作するのか」ということが聞きたかったのです。
引用返信 編集キー/
■91042 / inTopicNo.4)  Re[2]: ターゲットフレームワ−ク
□投稿者/ otu (3回)-(2019/05/21(Tue) 10:17:12)
No91031 (魔界の仮面弁士 さん) に返信
> 2019/05/20(Mon) 15:07:47 編集(投稿者)

追記、ありがとうございます。参考にさせて頂きます。

その後、色々と試行錯誤して結局、先方(実行環境)にNET Framework 4.7.2のランタイムを
入れてもらうことにしました。

VB2017のターゲットフレームワ−クから「別のフレームワ−クをインストールします」を選ぶと、
紹介のあったURLに誘導されるので、当方(開発環境)にNET Framework 4.7 Developer Packを
インストールしましたがVB2017のターゲットフレームワ−ク一覧に表示されませんでした。

4.8は同じ方法で表示されたので、既に4.7より新しい4.7.1や4.7.2が入っているからかもと思い、
アンインストールして再度4.7をインストールし直してみましたが、結局表示されず...
こんなことを、数回繰り返して、ギブアップしました。
もちろん、その度にPCの再起動は行っております。

アンインストールはインストール済みのDeveloper Packを実行すると修復、アンインストールが
選べるので、そこから行いました。コントロールパネルからは試していません。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Fullの
Releaseエントリを確認しましたが元の値が残ったままでアンインストールに失敗しているようです。

この辺の事情を知っている方がいれば、後学のために教えてほしいです。
引用返信 編集キー/
■91043 / inTopicNo.5)  Re[3]: ターゲットフレームワ−ク
□投稿者/ 魔界の仮面弁士 (2179回)-(2019/05/21(Tue) 10:25:06)
2019/05/21(Tue) 10:36:43 編集(投稿者)

No91042 (otu さん) に返信
> 4.8は同じ方法で表示されたので、既に4.7より新しい4.7.1や4.7.2が入っているからかもと思い、

.NET 4 未満は、複数バージョンを同時にインストールできますが、
.NET 4 以降はリプレース更新なので、複数インストールした場合、
最も高いバージョンで上書きされることになります。

ただし上記は実行環境の話。
Visual Studio 側には、複数の Developer Pack を導入できます。


上位バージョンのランタイムがインストールされていれば、
下位バージョン向けにコンパイルされたアプリを動作させられます。
バージョン非互換な機能を使っている場合は、別途対応が必要ですが、
条件を満たせば、その逆に下位のランタイムで上位向けのアプリを
動作させられるパターンもあります。
もしくは特定のバージョンに限定して動作させるようにするよう
アプリケーション構成ファイルを用意することも出来ます。

この辺りについては、「バージョン リダイレクト」について調べてみてください。


もちろん、開発環境と実行環境バージョンを一致させられるのであれば、
それが最善であろうかと思います。検証の手間も減らせますし。


> アンインストールはインストール済みのDeveloper Packを実行すると修復、アンインストールが
> 選べるので、そこから行いました。コントロールパネルからは試していません。

言語パック問題では無いでしょうか。自分も当時ハマりました。
http://creatiovitae.hatenadiary.com/entry/2018/05/26/203200
https://qiita.com/shin1103@github/items/6f88de2a008976357e69
https://blog.shibayan.jp/entry/20180527/1527357042
引用返信 編集キー/
■91044 / inTopicNo.6)  Re[4]: ターゲットフレームワ−ク
□投稿者/ otu (4回)-(2019/05/21(Tue) 10:58:48)
No91043 (魔界の仮面弁士 さん) に返信

> 言語パック問題では無いでしょうか。自分も当時ハマりました。
> http://creatiovitae.hatenadiary.com/entry/2018/05/26/203200
> https://qiita.com/shin1103@github/items/6f88de2a008976357e69
> https://blog.shibayan.jp/entry/20180527/1527357042

何と...そういう事でしたか。言語パックのみとは。
納得致しました。どうもありがとうございました。

#でも4.8は同じ方法でうまくいったのは不思議....

解決済み
引用返信 編集キー/
■91046 / inTopicNo.7)  Re[3]: ターゲットフレームワ−ク
□投稿者/ 魔界の仮面弁士 (2180回)-(2019/05/21(Tue) 11:35:31)
No91042 (otu さん) に返信
> NET Framework 4.7 Developer Packをインストールしましたが

とりあえず、
 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\
はどうなっていますか?
Developer Pack (Targeting Pack) や SDK をインストールすると、
上記にバージョン別フォルダーができるようなので。


> HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Fullの
> Releaseエントリを確認しましたが元の値が残ったままでアンインストールに失敗しているようです。

それは多分、ランタイムのアセンブリとなる
 C:\Windows\Microsoft.NET\Framework\
 C:\Windows\Microsoft.NET\Framework64\
のためのものである気がします。(単なる予想ですが)


=== 以下蛇足 ===

念のため、自分のレジストリ環境も確認してみました。
 Release = 528033
 Version = 4.8.03745
 1041\Release = 461814
 1041\Version = 4.7.03190

528033 ってことは、プレリリース版の .Net Framework 4.8 preview build 3745 ですね…。
自分としては GA な 4.8 を導入済みと思い込んでいたので、
otu さんのおかげで気が付けました! ありがとうございます。


あらためて 4.8 の Developer Pack とランゲージパックをインストールしなおし、上記が
 Release = 528049
 Version = 4.8.03761
となったことと、
 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.8
の一部が更新されたことを確認できました。
引用返信 編集キー/
■91048 / inTopicNo.8)  Re[4]: ターゲットフレームワ−ク
□投稿者/ otu (5回)-(2019/05/21(Tue) 12:07:52)
No91046 (魔界の仮面弁士 さん) に返信

>  C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\
> はどうなっていますか?
> Developer Pack (Targeting Pack) や SDK をインストールすると、
> 上記にバージョン別フォルダーができるようなので。

フォルダの更新日順で
v4.8
v4.7
v4.0
v3.5
v4.7.2
v4.7.1
以下略、となっておりました。
v4.0が4.7.2より新しいのはVB2010から2017に切り替えた時にインストールしたという
思い当たる節があります。


> 念のため、自分のレジストリ環境も確認してみました。
> あらためて 4.8 の Developer Pack とランゲージパックをインストールしなおし、上記が
>  Release = 528049
>  Version = 4.8.03761
自分のレジストリも全く同じ値でした。
4.8はインストールに成功してるみたいですね。


解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ