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

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

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

.Net5.0から.NetFramework4.8DLL参照

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

■97119 / inTopicNo.1)  .Net5.0から.NetFramework4.8DLL参照
  
□投稿者/ tees (7回)-(2021/03/31(Wed) 13:19:44)

分類:[.NET 全般] 

2021/03/31(Wed) 13:20:58 編集(投稿者)

VS2019を使用

.Net5.0のプロジェクトで.NetFramework4.8で作られたDLLを参照して使用することはできるのでしょうか。
ちなみに.NetFramework4.8のDLLは内製ではありません。

引用返信 編集キー/
■97124 / inTopicNo.2)  Re[1]: .Net5.0から.NetFramework4.8DLL参照
□投稿者/ 魔界の仮面弁士 (3037回)-(2021/03/31(Wed) 14:44:50)
2021/03/31(Wed) 16:15:02 編集(投稿者)

No97119 (tees さん) に返信
> .Net5.0のプロジェクトで.NetFramework4.8で作られたDLLを参照して使用することはできるのでしょうか。
> ちなみに.NetFramework4.8のDLLは内製ではありません。

.NET Framework 向けの DLL であったとしても、
.NET Standard 2.0 までの範囲であれば利用できる可能性があります。
(.NET Standard 2.1 は .NET Framework をサポートしていません)

.NET Framework の一部の機能は、.NET 6 や .NET 5 には引き継がれていないので、
利用できるかどうかは、その DLL の製造元に確認してみてください。


// .NET Framework 4.8 な C# 製 DLL
public static class SampleClass
{
 public static int Plus(int a, int b) => a + b;
}


' .NET 5 / .NET 6 な VB 製 WinForm
Public Class Form1
 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  '「.NET 5.0.4」
  Text = System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription
 End Sub
 Private Sub Form1_DoubleClick(sender As Object, e As EventArgs) Handles Me.DoubleClick
  MsgBox(SampleClass.Plus(300, 21))
 End Sub
End Class
引用返信 編集キー/
■97125 / inTopicNo.3)  Re[2]: .Net5.0から.NetFramework4.8DLL参照
□投稿者/ tees (8回)-(2021/03/31(Wed) 14:58:17)
No97124 (魔界の仮面弁士 さん) に返信

> .NET Framework の一部の機能は、.NET 6 や .NET 5 には引き継がれていないので、
> 利用できるかどうかは、その DLL の製造元に確認してみてください。

ご回答ありがとうございます。
製造元からは.Net5.0には対応していないと回答されています。

対策として.NetFramework4.8で一つDLLを作成し、その中で外部のDLLをラップしようと思いますが、
この対策方法としては問題ないでしょうか。
引用返信 編集キー/
■97126 / inTopicNo.4)  Re[3]: .Net5.0から.NetFramework4.8DLL参照
□投稿者/ 魔界の仮面弁士 (3038回)-(2021/03/31(Wed) 16:06:49)
No97125 (tees さん) に返信
> 製造元からは.Net5.0には対応していないと回答されています。
検証していないので保証できないという意味の回答だったのでしょうか。
それとも内部で WCF 等のクラスを使用しているので NG という事でしょうか。

前者であれば、直接参照して利用できる可能性がありますが、保証の限りでは無いですよね。

後者 (.NET 5 でサポートされていないクラスを使用している)だとしたら、
DLL として直接参照して呼び出すことはできません。
.NET Framework 4.8 製の EXE を通じて、別プロセスとして呼び出すことならできるでしょう。


> この対策方法としては問題ないでしょうか。
対策については製造元に相談して頂くしか無いですね。
少なくとも該当 DLL を見たことも無い第三者が答えられる話ではありません。

製造元が回答不能なら諦めるか、
製造元と契約を結んで追加検証してもらうか、
.NET 5 向けにリメイクしてもらうかしてください。

なお .NET 5 は長期サポート版では無いため、あと 1 年足らずでサポートが終了する点にもご留意ください。
引用返信 編集キー/
■97128 / inTopicNo.5)  Re[4]: .Net5.0から.NetFramework4.8DLL参照
□投稿者/ tees (9回)-(2021/03/31(Wed) 18:03:20)
No97126 (魔界の仮面弁士 さん) に返信
> ■No97125 (tees さん) に返信
>>製造元からは.Net5.0には対応していないと回答されています。
> 検証していないので保証できないという意味の回答だったのでしょうか。
> それとも内部で WCF 等のクラスを使用しているので NG という事でしょうか。

どちらかは分からないのですが、
サポートしていないと製造元からの回答ですので直接呼ぶのはNGなのでしょうね。


> 製造元が回答不能なら諦めるか、
> 製造元と契約を結んで追加検証してもらうか、
> .NET 5 向けにリメイクしてもらうかしてください。

すぐに製造元が対応してくれる状態ではないですので、
やはり間に内製したDLLを挟んで呼ぶようにしたいと思います。

引用返信 編集キー/
■97129 / inTopicNo.6)  Re[3]: .Net5.0から.NetFramework4.8DLL参照
□投稿者/ Azulean (1189回)-(2021/03/31(Wed) 20:56:29)
No97125 (tees さん) に返信
> 対策として.NetFramework4.8で一つDLLを作成し、その中で外部のDLLをラップしようと思いますが、
> この対策方法としては問題ないでしょうか。

.NET 5 EXE or DLL → .NET 4.8 DLL → 問題の DLL という参照関係ですか?
それなら、直接参照することと変わりませんので、.NET 5 や .NET Core で廃止されたもの・動作が変更されたものに依存していると、動きません。

.NET 5 EXE or DLL → プロセス間通信 → .NET 4.8 EXE → 問題の DLL なら良いとは思います。
引用返信 編集キー/
■97132 / inTopicNo.7)  Re[4]: .Net5.0から.NetFramework4.8DLL参照
□投稿者/ tees (10回)-(2021/04/02(Fri) 20:29:21)
No97129 (Azulean さん) に返信
> .NET 5 EXE or DLL → .NET 4.8 DLL → 問題の DLL という参照関係ですか?
> それなら、直接参照することと変わりませんので、.NET 5 や .NET Core で廃止されたもの・動作が変更されたものに依存していると、動きません。
>
> .NET 5 EXE or DLL → プロセス間通信 → .NET 4.8 EXE → 問題の DLL なら良いとは思います。

ご回答ありがとうございます。
根元が.Net5のexeになっていると、
参照しているDLLは全て.Net5として動作するということですね。

引用返信 編集キー/

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


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

このトピックに書きこむ