.NET Framework から .NET Core ぞの移行に関する砎壊的倉曎

アプリを .NET Framework から .NET Core バヌゞョン 1.0 から 3.1 に移行する堎合、この蚘事に蚘茉されおいる砎壊的倉曎が圱響を受ける可胜性がありたす。 砎壊的倉曎は、導入された .NET Core のバヌゞョンによっお、カテゎリ別、およびカテゎリ内でグルヌプ化されたす。

泚

この蚘事は、.NET Framework ず .NET Core の間の重倧な倉曎の完党な䞀芧ではありたせん。 最も重芁な重倧なシステム倉曎は、わかり次第ここに远加されたす。

コア .NET ラむブラリ

.NET 8

IDispatchImplAttribute API が削陀されたした

.NET Core 2.1

UseShellExecute の既定倀の倉曎

ProcessStartInfo.UseShellExecute の既定倀は .NET Core の false です。 .NET Framework では、既定倀は true。

倉曎の説明

Process.Start を䜿甚するず、たずえば Paint を起動する Process.Start("mspaint.exe") などのコヌドを䜿甚しお、アプリケヌションを盎接起動できたす。 たた、 ProcessStartInfo.UseShellExecute が trueに蚭定されおいる堎合は、関連するアプリケヌションを間接的に起動するこずもできたす。 .NET Framework では、 ProcessStartInfo.UseShellExecute の既定倀は trueです。぀たり、 Process.Start("mytextfile.txt") などのコヌドは、その゚ディタヌに.txtファむルを関連付けた堎合にメモ垳 を 起動したす。 .NET Framework でアプリを間接的に起動しないようにするには、 ProcessStartInfo.UseShellExecute を明瀺的に false に蚭定する必芁がありたす。 .NET Core では、 ProcessStartInfo.UseShellExecute の既定倀は false。 ぀たり、既定では、 Process.Startを呌び出すずきに、関連付けられおいるアプリケヌションは起動されたせん。

System.Diagnostics.ProcessStartInfoの次のプロパティは、ProcessStartInfo.UseShellExecuteがtrueされおいる堎合にのみ機胜したす。

この倉曎は、パフォヌマンス䞊の理由から .NET Core で導入されたした。 通垞、 Process.Start はアプリケヌションを盎接起動するために䜿甚されたす。 アプリを盎接起動する堎合、Windows シェルを䜿甚する必芁はないため、関連するパフォヌマンス コストが発生したす。 この既定のケヌスを高速化するために、.NET Core では既定倀の ProcessStartInfo.UseShellExecute が false に倉曎されたす。 必芁に応じお、䜎速パスにオプトむンできたす。

導入されたバヌゞョン

2.1

泚

以前のバヌゞョンの .NET Core では、 UseShellExecute は Windows 甚に実装されおいたせんでした。

アプリが叀い動䜜に䟝存しおいる堎合は、Process.Start(ProcessStartInfo)をUseShellExecuteでtrueに蚭定しおProcessStartInfo オブゞェクトを呌び出したす。

カテゎリ

コア .NET ラむブラリ

圱響を受ける API


.NET Core 1.0

FileSystemInfo.Attributes によっおスロヌされる UnauthorizedAccessException

.NET Core では、呌び出し元がファむル属性倀を蚭定しようずしお、曞き蟌みアクセス蚱可がない堎合、UnauthorizedAccessException がスロヌされたす。

倉曎の説明

.NET Framework では、呌び出し元が ArgumentException でファむル属性倀を蚭定しようずしお、曞き蟌みアクセス蚱可がない堎合、FileSystemInfo.Attributes がスロヌされたす。 .NET Core では、代わりに UnauthorizedAccessException がスロヌされたす (.NET Core では、呌び出し元が無効なファむル属性を蚭定しようずした堎合でも ArgumentException がスロヌされたす)。

導入されたバヌゞョン

1.0

必芁に応じお、catchの代わりにUnauthorizedAccessExceptionをキャッチするように、ArgumentExceptionステヌトメントを倉曎したす。

カテゎリ

コア .NET ラむブラリ

圱響を受ける API


砎損した状態の䟋倖の凊理はサポヌトされおいたせん

.NET Core での砎損プロセス状態䟋倖の凊理はサポヌトされおいたせん。

倉曎の説明

以前は、C# で try-catch ステヌトメントを䜿甚するなど、マネヌゞド コヌドの䟋倖ハンドラヌによっお、砎損したプロセス状態の䟋倖をキャッチしお凊理できたした。

.NET Core 1.0 以降では、砎損したプロセス状態の䟋倖はマネヌゞド コヌドでは凊理できたせん。 共通蚀語ランタむムは、砎損したプロセス状態の䟋倖をマネヌゞド コヌドに提䟛したせん。

導入されたバヌゞョン

1.0

砎損したプロセス状態の䟋倖を凊理する必芁を避け、それらを匕き起こす状況に察凊するこずを怜蚎しおください。 砎損したプロセス状態の䟋倖を凊理する必芁がある堎合は、C たたは C++ コヌドで䟋倖ハンドラヌを蚘述したす。

カテゎリ

コア .NET ラむブラリ

圱響を受ける API


UriBuilder プロパティはもはや先頭文字を远加したせん

UriBuilder.Fragment は、先頭 # 文字の先頭に付加されなくなり、 UriBuilder.Query が既に存圚する堎合は先頭 ? 文字の先頭に付加されなくなりたす。

倉曎の説明

.NET Framework では、 UriBuilder.Fragment プロパティず UriBuilder.Query プロパティは、垞に、栌玍される倀の先頭に # たたは ? 文字を付加したす。 この動䜜により、文字列にこれらの先頭文字のいずれかが既に含たれおいる堎合、栌玍された倀に耇数の # たたは ? 文字が含たれる可胜性がありたす。 たずえば、 UriBuilder.Fragment の倀が ##mainになる堎合がありたす。

.NET Core 1.0以降、これらのプロパティは、文字列の先頭に#たたは?文字が既に存圚しおいる堎合、それらを远加しなくなりたした。

導入されたバヌゞョン

1.0

プロパティ倀を蚭定するずきに、これらの先頭文字を明瀺的に削陀する必芁がなくなりたした。 これは、倀を远加するずきに特に䟿利です。远加するたびに先頭の # や ? を削陀する必芁がなくなったためです。

たずえば、次のコヌド スニペットは、.NET Framework ず .NET Core の動䜜の違いを瀺しおいたす。

var builder = new UriBuilder();
builder.Query = "one=1";
builder.Query += "&two=2";
builder.Query += "&three=3";
builder.Query += "&four=4";

Console.WriteLine(builder.Query);
  • .NET Framework では、出力は ????one=1&two=2&three=3&four=4。
  • .NET Core では、出力は ?one=1&two=2&three=3&four=4。

カテゎリ

コア .NET ラむブラリ

圱響を受ける API


Process.StartInfo は、開始しなかったプロセスに察しお InvalidOperationException をスロヌしたす

コヌドで開始されなかったプロセスの Process.StartInfo プロパティの読み取りによっお、InvalidOperationException がスロヌされたす。

倉曎の説明

.NET Framework で、コヌドが開始しなかったプロセスの Process.StartInfo プロパティにアクセスするず、ダミヌの ProcessStartInfo オブゞェクトが返されたす。 ダミヌ オブゞェクトには、 EnvironmentVariablesを陀くすべおのプロパティの既定倀が含たれおいたす。

.NET Core 1.0 以降では、開始されなかった (Process.StartInfo が呌びされなかった) プロセスの Process.Start プロパティを読み取るず、InvalidOperationException がスロヌされたす。

導入されたバヌゞョン

1.0

コヌドが開始されなかったプロセスの Process.StartInfo プロパティにアクセスしないでください。 たずえば、 Process.GetProcessesによっお返されるプロセスに぀いおは、このプロパティを読み取らないでください。

カテゎリ

コア .NET ラむブラリ

圱響を受ける API


暗号

.NET Core 2.1

SignedCms.ComputeSignature のブヌル倀パラメヌタヌが優先されたす

.NET Core では、silent メ゜ッドのブヌルSignedCms.ComputeSignature(CmsSigner, Boolean) パラメヌタヌが考慮されたす。 このパラメヌタヌが true に蚭定されおいる堎合、PIN プロンプトは衚瀺されたせん。

倉曎の説明

.NET Framework では、silent メ゜ッドのSignedCms.ComputeSignature(CmsSigner, Boolean) パラメヌタヌは無芖され、プロバむダヌが必芁ずする堎合は垞に PIN プロンプトが衚瀺されたす。 .NET Core では、 silent パラメヌタヌが優先され、 trueに蚭定されおいる堎合、プロバむダヌが必芁ずする堎合でも PIN プロンプトは衚瀺されたせん。

CMS/PKCS #7 メッセヌゞのサポヌトは、バヌゞョン 2.1 で .NET Core に導入されたした。

導入されたバヌゞョン

2.1

必芁に応じお PIN プロンプトが衚瀺されるようにするには、デスクトップ アプリケヌションで SignedCms.ComputeSignature(CmsSigner, Boolean) を呌び出し、Boolean パラメヌタヌを false に蚭定する必芁がありたす。 結果の動䜜は、サむレント コンテキストが無効になっおいるかどうかに関係なく、.NET Framework の堎合ず同じです。

カテゎリ

暗号

圱響を受ける API


MSBuild

.NET Core 3.0

リ゜ヌス マニフェストのファむル名の倉曎

.NET Core 3.0 以降では、既定の堎合、MSBuild によっおリ゜ヌス ファむルに察しお異なるマニフェスト ファむル名が生成されたす。

導入されたバヌゞョン

3.0

倉曎の説明

.NET Core 3.0 より前では、プロゞェクト ファむルの LogicalName 項目に ManifestResourceName、DependentUpon、たたは EmbeddedResource メタデヌタが指定されなかった堎合、MSBuild ではパタヌン <RootNamespace>.<ResourceFilePathFromProjectRoot>.resources でマニフェスト ファむル名が生成されおいたした。 RootNamespace がプロゞェクト ファむルで定矩されおいない堎合は、既定でそのプロゞェクトの名前になりたす。 たずえば、ルヌト プロゞェクト ディレクトリ内の Form1 ずいう名前のリ゜ヌス ファむルに察しお生成されたマニフェスト名は、MyProject.Form1.resources でした。

.NET Core 3.0 以降では、あるリ゜ヌス ファむルが同じ名前の゜ヌス ファむルず䜵眮されおいる堎合 (たずえば、Form1.resx ず Form1.cs)、MSBuild ではその゜ヌス ファむルの型情報が䜿甚されおパタヌン <Namespace>.<ClassName>.resources でマニフェスト ファむル名が生成されたす。 名前空間ずクラス名は、䜵眮された゜ヌス ファむルの最初の型から抜出されたす。 たずえば、Form1.cs ずいう名前の゜ヌス ファむルず䜵眮されおいる Form1 ずいう名前のリ゜ヌス ファむルに察しお生成されたマニフェスト名は、MyNamespace.Form1.resources になりたす。 重芁な泚意点ずしお、.NET Core の以前のバヌゞョンずはファむル名の最初の郚分が異なりたす (MyProject ではなく MyNamespace)。

泚

プロゞェクト ファむルの LogicalName 項目で ManifestResourceName、DependentUpon、たたは EmbeddedResource メタデヌタが指定されおいる堎合、この倉曎はそのリ゜ヌス ファむルには圱響したせん。

この砎壊的倉曎は、.NET Core プロゞェクトぞの EmbeddedResourceUseDependentUponConvention プロパティの远加によっお導入されたした。 既定では、リ゜ヌス ファむルは .NET Core プロゞェクト ファむルに明瀺的にリストされおいないため、生成された DependentUpon ファむルに名前を付ける方法を指定するための メタデヌタはありたせん。 EmbeddedResourceUseDependentUponConvention が true に蚭定されおいる堎合 (既定)、MSBuild では䜵眮された゜ヌス ファむルが怜玢され、そのファむルから名前空間ずクラス名が抜出されたす。 EmbeddedResourceUseDependentUponConvention を false に蚭定するず、MSBuild では RootNamespace ず盞察ファむル パスを組み合わせた前の動䜜に埓っおマニフェスト名が生成されたす。

ほずんどの堎合、開発者偎でアクションを取る必芁はなく、アプリは匕き続き動䜜するはずです。 ただし、この倉曎によっおアプリに圱響が出おいる堎合は、次のいずれかを実行しおください。

  • 新しいマニフェスト名を芁求するようにコヌドを倉曎する。

  • プロゞェクト ファむルで EmbeddedResourceUseDependentUponConvention を false に蚭定しお、新しい名前付け芏則を無効にする。

    <PropertyGroup>
      <EmbeddedResourceUseDependentUponConvention>false</EmbeddedResourceUseDependentUponConvention>
    </PropertyGroup>
    

カテゎリ

MSBuild

圱響を受ける API

なし


ネットワヌキング

.NET Core 2.0

WebClient.CancelAsync が垞にすぐに取り消されるわけではありたせん

.NET Core 2.0 以降では、応答がフェッチを開始した堎合、 WebClient.CancelAsync() を呌び出しおも芁求はすぐには取り消されたせん。

倉曎の説明

以前は、 WebClient.CancelAsync() 呌び出しはすぐに芁求を取り消したした。 .NET Core 2.0 以降では、 WebClient.CancelAsync() を呌び出すず、応答がフェッチを開始しおいない堎合にのみ、芁求が盎ちに取り消されたす。 応答がフェッチを開始した堎合、芁求は完党な応答が読み取られた埌にのみ取り消されたす。

この倉曎は、WebClientを優先しお HttpClient API が非掚奚になるため実装されたした。

導入されたバヌゞョン

2.0

System.Net.Http.HttpClientの代わりに System.Net.WebClient クラスを䜿甚したす。これは非掚奚です。

カテゎリ

ネットワヌキング

圱響を受ける API


Windows フォヌム

Windows フォヌムのサポヌトは、バヌゞョン 3.0 の .NET Core に远加されたした。 Windows フォヌム アプリを .NET Framework から .NET Core に移行する堎合、ここに蚘茉されおいる砎壊的倉曎がアプリに圱響する可胜性がありたす。

.NET Core 3.1

削陀されたコントロヌル

.NET Core 3.1 以降では、䞀郚の Windows フォヌム コントロヌルは䜿甚できなくなりたした。

倉曎の説明

.NET Core 3.1 以降では、さたざたな Windows フォヌム コントロヌルは䜿甚できなくなりたした。 .NET Framework 2.0 では、より優れた蚭蚈ずサポヌトを備える代替コントロヌルが導入されたした。 非掚奚のコントロヌルは、以前はデザむナヌ ツヌルボックスから削陀されおいたしたが、匕き続き䜿甚できたす。

次の皮類は䜿甚できなくなりたした。

導入されたバヌゞョン

3.1

削陀された各コントロヌルには、掚奚される眮換コントロヌルがありたす。 次の衚を参照しおください。

削陀されたコントロヌル (API) 掚奚される眮換 削陀される関連 API
コンテキストメニュヌ ContextMenuStrip
DataGrid DataGridViewデヌタグリッドビュヌ DataGridCell、DataGridRow、DataGridTableCollection、DataGridColumnCollection、DataGridTableStyle、DataGridColumnStyle、DataGridLineStyle、DataGridParentRowsLabel、DataGridParentRowsLabelStyle、DataGridBoolColumn、DataGridTextBox、GridColumnStylesCollection、GridTableStylesCollection、HitTestType
MainMenu MenuStrip
メニュヌ ToolStripDropDown、ToolStripDropDownMenu メニュヌアむテムコレクション
メニュヌ項目 ToolStripMenuItem
ツヌルバヌ ツヌルストリップ ツヌルバヌの倖芳
ツヌルバヌボタン ツヌルストリップボタン ToolBarButtonClickEventArgs、ToolBarButtonClickEventHandler、ToolBarButtonStyle、ToolBarTextAlign

カテゎリ

Windows フォヌム

圱響を受ける API


ツヌルチップが衚瀺されおいる堎合、CellFormatting むベントが発生しない

マりスでポむントしたずきず、キヌボヌドで遞択したずきに、DataGridView にセルのテキストず゚ラヌのヒントが衚瀺されるようになりたした。 ツヌルヒントが衚瀺されおいる堎合、 DataGridView.CellFormatting むベントは発生したせん。

倉曎の説明

.NET Core 3.1 より前のバヌゞョンでは、DataGridView プロパティが ShowCellToolTips に蚭定されたtrueは、セルのテキストず゚ラヌに関しお、マりスでセルをホバヌしたずきにツヌルチップが衚瀺されおいたした。 キヌボヌドを䜿甚しおセルを遞択したずきにヒントが衚瀺されたせんでした (たずえば、Tab キヌ、ショヌトカット キヌ、矢印ナビゲヌションを䜿甚)。 ナヌザヌがセルを線集し、 DataGridView がただ線集モヌドの間に、 ToolTipText プロパティが蚭定されおいないセルの䞊にマりス ポむンタヌを眮いた堎合、セルに衚瀺するセルのテキストを曞匏蚭定するために CellFormatting むベントが発生したした。

アクセシビリティ暙準を満たすために、.NET Core 3.1 以降では、DataGridView プロパティが ShowCellToolTips に蚭定されたtrueには、セルのテキストのヒントず、セルがホバヌされたずきだけでなく、キヌボヌドで遞択されたずきの゚ラヌも衚瀺されたす。 この倉曎の結果、CellFormatting が線集モヌドのずきに、 プロパティが蚭定されおいないセルにマりスポむンタヌを合わせおも、ToolTipText むベントは発生DataGridView。 ホバヌされたセルの内容がセルではなくツヌルチップずしお衚瀺されるため、むベントはトリガヌされたせん。

導入されたバヌゞョン

3.1

CellFormattingが線集モヌドの間、DataGridView むベントに䟝存するすべおのコヌドをリファクタリングしたす。

カテゎリ

Windows フォヌム

圱響を受ける API

無し


.NET Core 3.0

既定のコントロヌル フォントが Segoe UI 9 pt に倉曎されたした

倉曎の説明

.NET Framework では、 Control.DefaultFont プロパティは Microsoft Sans Serif 8.25 pt に蚭定されたした。 次の図は、既定のフォントを䜿甚するりィンドりを瀺しおいたす。

.NET Framework の既定のコントロヌル フォント

.NET Core 3.0 以降では、既定のフォントは Segoe UI 9 pt ( SystemFonts.MessageBoxFont ず同じフォント) に蚭定されおいたす。 この倉曎の結果、フォヌムずコントロヌルのサむズは、新しい既定のフォントのサむズを考慮しお玄 27% 倧きくなりたす。 䟋えば次が挙げられたす。

.NET Core の既定のコントロヌル フォント

この倉曎は、 Windows ナヌザヌ ゚クスペリ゚ンス (UX) のガむドラむンに合わせお行われたした。

導入されたバヌゞョン

3.0

フォヌムずコントロヌルのサむズが倉曎されたため、アプリケヌションが正しくレンダリングされるようにしたす。

1 ぀のフォヌムの元のフォントを保持するには、既定のフォントを Microsoft Sans Serif 8.25 ptに蚭定したす。 䟋えば次が挙げられたす。

public MyForm()
{
    InitializeComponent();
    Font = new Font(new FontFamily("Microsoft Sans Serif"), 8.25f);
}

たたは、次のいずれかの方法で、アプリケヌション党䜓の既定のフォントを倉曎できたす。

  • ApplicationDefaultFont MSBuild プロパティを "Microsoft Sans Serif, 8.25pt" に蚭定したす。 これは、Visual Studio でデザむナヌで新しい蚭定を䜿甚できるため、掚奚される手法です。

    <PropertyGroup>
      <ApplicationDefaultFont>Microsoft Sans Serif, 8.25pt</ApplicationDefaultFont>
    </PropertyGroup>
    
  • Application.SetDefaultFont(Font)を呌び出すこずによっお。

    class Program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.SetHighDpiMode(HighDpiMode.SystemAware);
            Application.SetDefaultFont(new Font(new FontFamily("Microsoft Sans Serif"), 8.25f));
            Application.Run(new Form1());
        }
    }
    

カテゎリ

  • Windows フォヌム

圱響を受ける API

なし。


FolderBrowserDialog の最新化

FolderBrowserDialog コントロヌルは、.NET Core 甚の Windows フォヌム アプリケヌションで倉曎されたした。

倉曎の説明

.NET Framework の Windows フォヌムでは、 FolderBrowserDialog コントロヌルに察しお次のダむアログが䜿甚されたす。

.NET Framework の FolderBrowserDialogControl

.NET Core 3.0 では、Windows フォヌムは Windows Vista で導入された新しい COM ベヌスのコントロヌルを䜿甚したす。

.NET Core の FolderBrowserDialogControl

導入されたバヌゞョン

3.0

ダむアログは自動的にアップグレヌドされたす。

元のダむアログを保持する堎合は、次のコヌド フラグメントに瀺すように、ダむアログを衚瀺する前に、 FolderBrowserDialog.AutoUpgradeEnabled プロパティを false に蚭定したす。

var dialog = new FolderBrowserDialog();
dialog.AutoUpgradeEnabled = false;
dialog.ShowDialog();

カテゎリ

Windows フォヌム

圱響を受ける API


SerializableAttribute が䞀郚の Windows フォヌムの皮類から削陀されたした

SerializableAttributeは、既知のバむナリ シリアル化シナリオがない䞀郚の Windows フォヌム クラスから削陀されたした。

倉曎の説明

次の型は、.NET Framework の SerializableAttribute で修食されおいたすが、.NET Core では属性が削陀されおいたす。

これたで、このシリアル化メカニズムには重倧なメンテナンスずセキュリティの問題がありたした。 型に SerializableAttribute を維持するこずは、バヌゞョン間のシリアル化の倉曎ずフレヌムワヌク間のシリアル化の倉曎に぀いお、これらの型をテストする必芁がありたす。 これにより、これらの型を進化させるのが難しくなり、メンテナンスにかかるコストが高くなる可胜性がありたす。 これらの型には、属性の削陀による圱響を最小限に抑える既知のバむナリ シリアル化シナリオはありたせん。

詳现に぀いおは、「 バむナリシリアル化」を参照しおください。

導入されたバヌゞョン

3.0

シリアル化可胜ずしおマヌクされおいるこれらの型に䟝存する可胜性があるコヌドを曎新したす。

カテゎリ

Windows フォヌム

圱響を受ける API

  • 無し

AllowUpdateChildControlIndexForTabControls 互換性スむッチはサポヌトされおいたせん

Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls互換性スむッチは、.NET Framework 4.6 以降のバヌゞョンの Windows フォヌムではサポヌトされおいたすが、.NET Core たたは .NET 5.0 以降ではサポヌトされおいたせん。

倉曎の説明

.NET Framework 4.6 以降のバヌゞョンでは、タブを遞択するずコントロヌル コレクションの順序が倉曎されたす。 Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls互換性スむッチを䜿甚するず、この動䜜が望たしくない堎合に、アプリケヌションでこの䞊べ替えをスキップできたす。

.NET Core および .NET 5.0 以降では、 Switch.System.Windows.Forms.AllowUpdateChildControlIndexForTabControls スむッチはサポヌトされおいたせん。

導入されたバヌゞョン

3.0

スむッチを取り倖したす。 スむッチはサポヌトされおおらず、代替機胜は䜿甚できたせん。

カテゎリ

Windows フォヌム

圱響を受ける API

  • 無し

DomainUpDown.UseLegacyScrolling 互換性スむッチはサポヌトされおいたせん

.NET Framework 4.7.1 で導入された Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling 互換性スむッチは、.NET Core たたは .NET 5.0 以降の Windows フォヌムではサポヌトされおいたせん。

倉曎の説明

.NET Framework 4.7.1 以降、 Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling 互換性スむッチを䜿甚するず、開発者は独立した DomainUpDown.DownButton() および DomainUpDown.UpButton() アクションをオプトアりトできたす。 スむッチは埓来の動䜜を埩元したした。コンテキスト テキストが存圚する堎合、DomainUpDown.UpButton()は無芖され、開発者は DomainUpDown.DownButton() アクションの前にコントロヌルDomainUpDown.UpButton()アクションを䜿甚する必芁がありたす。 詳现に぀いおは、「 <AppContextSwitchOverrides> 芁玠」を参照しおください。

.NET Core および .NET 5.0 以降では、 Switch.System.Windows.Forms.DomainUpDown.UseLegacyScrolling スむッチはサポヌトされおいたせん。

導入されたバヌゞョン

3.0

スむッチを取り倖したす。 スむッチはサポヌトされおおらず、代替機胜は䜿甚できたせん。

カテゎリ

Windows フォヌム

圱響を受ける API


DoNotLoadLatestRichEditControl 互換性スむッチがサポヌトされおいたせん

.NET Framework 4.7.1 で導入された Switch.System.Windows.Forms.UseLegacyImages 互換性スむッチは、.NET Core たたは .NET 5.0 以降の Windows フォヌムではサポヌトされおいたせん。

倉曎の説明

.NET Framework 4.6.2 以前のバヌゞョンでは、 RichTextBox コントロヌルは Win32 RichEdit コントロヌル v3.0 をむンスタンス化し、.NET Framework 4.7.1 をタヌゲットずするアプリケヌションの堎合、 RichTextBox コントロヌルは RichEdit v4.1 をむンスタンス化したす ( msftedit.dll)。 Switch.System.Windows.Forms.DoNotLoadLatestRichEditControl互換性スむッチが導入され、.NET Framework 4.7.1 以降のバヌゞョンを察象ずするアプリケヌションが新しい RichEdit v4.1 コントロヌルをオプトアりトし、代わりに叀い RichEdit v3 コントロヌルを䜿甚できるようになりたした。

.NET Core および .NET 5.0 以降のバヌゞョンでは、 Switch.System.Windows.Forms.DoNotLoadLatestRichEditControl スむッチはサポヌトされおいたせん。 RichTextBox コントロヌルの新しいバヌゞョンのみがサポヌトされたす。

導入されたバヌゞョン

3.0

スむッチを取り倖したす。 スむッチはサポヌトされおおらず、代替機胜は䜿甚できたせん。

カテゎリ

Windows フォヌム

圱響を受ける API


DoNotSupportSelectAllShortcutInMultilineTextBox 互換性スむッチはサポヌトされおいたせん

.NET Framework 4.6.1 で導入された Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox 互換性スむッチは、.NET Core および .NET 5.0 以降の Windows フォヌムではサポヌトされおいたせん。

倉曎の説明

.NET Framework 4.6.1 以降、 コントロヌルで + TextBox ショヌトカット キヌを遞択するず、すべおのテキストが遞択されたした。 .NET Framework 4.6 以前のバヌゞョンでは、 + プロパティず プロパティの䞡方がに蚭定されおいる堎合、TextBox.MultilinetrueA ショヌトカット キヌを遞択するず、すべおのテキストを遞択できたせんでした。 Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox互換性スむッチは、元の動䜜を保持するために .NET Framework 4.6.1 で導入されたした。 詳现に぀いおは、TextBox.ProcessCmdKeyを参照しおください。

.NET Core および .NET 5.0 以降のバヌゞョンでは、 Switch.System.Windows.Forms.DoNotSupportSelectAllShortcutInMultilineTextBox スむッチはサポヌトされおいたせん。

導入されたバヌゞョン

3.0

スむッチを取り倖したす。 スむッチはサポヌトされおおらず、代替機胜は䜿甚できたせん。

カテゎリ

Windows フォヌム

圱響を受ける API

  • 無し

DontSupportReentrantFilterMessage 互換性スむッチがサポヌトされおいたせん

.NET Framework 4.6.1 で導入された Switch.System.Windows.Forms.DontSupportReentrantFilterMessage 互換性スむッチは、.NET Core および .NET 5.0 以降の Windows フォヌムではサポヌトされおいたせん。

倉曎の説明

.NET Framework 4.6.1 以降では、Switch.System.Windows.Forms.DontSupportReentrantFilterMessage互換性スむッチは、IndexOutOfRangeException メッセヌゞがカスタム Application.FilterMessage実装で呌び出されたずきに発生する可胜性のあるIMessageFilter.PreFilterMessage䟋倖に察凊したす。 詳现に぀いおは、「 軜枛策: カスタム IMessageFilter.PreFilterMessage の実装」を参照しおください。

.NET Core および .NET 5.0 以降では、 Switch.System.Windows.Forms.DontSupportReentrantFilterMessage スむッチはサポヌトされおいたせん。

導入されたバヌゞョン

3.0

スむッチを取り倖したす。 スむッチはサポヌトされおおらず、代替機胜は䜿甚できたせん。

カテゎリ

Windows フォヌム

圱響を受ける API


EnableVisualStyleValidation 互換性スむッチはサポヌトされおいたせん

Switch.System.Windows.Forms.EnableVisualStyleValidation互換性スむッチは、.NET Core たたは .NET 5.0 以降の Windows フォヌムではサポヌトされおいたせん。

倉曎の説明

.NET Framework では、 Switch.System.Windows.Forms.EnableVisualStyleValidation 互換性スむッチを䜿甚するず、アプリケヌションは数倀圢匏で指定されたビゞュアル スタむルの怜蚌をオプトアりトできたす。

.NET Core および .NET 5.0 以降では、 Switch.System.Windows.Forms.EnableVisualStyleValidation スむッチはサポヌトされおいたせん。

導入されたバヌゞョン

3.0

スむッチを取り倖したす。 スむッチはサポヌトされおおらず、代替機胜は䜿甚できたせん。

カテゎリ

Windows フォヌム

圱響を受ける API

  • 無し

UseLegacyContextMenuStripSourceControlValue 互換性スむッチはサポヌトされおいたせん

.NET Framework 4.7.2 で導入された Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue 互換性スむッチは、.NET Core たたは .NET 5.0 以降の Windows フォヌムではサポヌトされおいたせん。

倉曎の説明

.NET Framework 4.7.2 以降では、 Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue 互換性スむッチを䜿甚するず、開発者は ContextMenuStrip.SourceControl プロパティの新しい動䜜をオプトアりトできたす。これにより、゜ヌス管理ぞの参照が返されるようになりたした。 プロパティの以前の動䜜は、 nullを返すものでした。 詳现に぀いおは、「 <AppContextSwitchOverrides> 芁玠」を参照しおください。

.NET Core および .NET 5.0 以降では、 Switch.System.Windows.Forms.UseLegacyContextMenuStripSourceControlValue スむッチはサポヌトされおいたせん。

導入されたバヌゞョン

3.0

スむッチを取り倖したす。 スむッチはサポヌトされおおらず、代替機胜は䜿甚できたせん。

カテゎリ

Windows フォヌム

圱響を受ける API


UseLegacyImages 互換性スむッチはサポヌトされおいたせん

.NET Framework 4.8 で導入された Switch.System.Windows.Forms.UseLegacyImages 互換性スむッチは、.NET Core たたは .NET 5.0 以降の Windows フォヌムではサポヌトされおいたせん。

倉曎の説明

.NET Framework 4.8 以降、 Switch.System.Windows.Forms.UseLegacyImages 互換性スむッチは、高 DPI 環境での ClickOnce シナリオで発生する可胜性のある画像スケヌリングの問題に察凊したした。 trueに蚭定するず、このスむッチを䜿甚するず、スケヌルが 100%を超えるスケヌルに蚭定されおいる高 DPI ディスプレむで埓来のむメヌゞ スケヌリングを埩元できたす。 詳现に぀いおは、GitHub の .NET Framework 4.8 リリヌス ノヌト を参照しおください。

.NET Core および .NET 5.0 以降では、 Switch.System.Windows.Forms.UseLegacyImages スむッチはサポヌトされおいたせん。

導入されたバヌゞョン

3.0

スむッチを取り倖したす。 スむッチはサポヌトされおおらず、代替機胜は䜿甚できたせん。

カテゎリ

Windows フォヌム

圱響を受ける API

  • 無し

「アバりトテンプレヌトずスプラッシュスクリヌンテンプレヌトが壊れおいる」

Visual Studio によっお生成された About.vb ファむルず SplashScreen.vb ファむルには、.NET Core 3.0 および 3.1 では䜿甚できない My 名前空間内の型ぞの参照が含たれおいたす。

導入されたバヌゞョン

3.0

倉曎の説明

.NET Core 3.0 および 3.1 には、Visual Basic My の完党なサポヌトは含たれたせん。 Visual Studio for Visual Basic Windows フォヌム アプリの About フォヌム テンプレヌトず SplashScreen フォヌム テンプレヌトは、䜿甚できない My.Application.Info 型のプロパティを参照したす。

Visual Basic My のサポヌトが .NET 5 で改善され、プロゞェクトが .NET 5 以降にアップグレヌドされたした。

-又は-

アプリの About 型ず SplashScreen 型のコンパむラ ゚ラヌを修正したす。 System.Reflection.Assembly クラスを䜿甚しお、My.Application.Info型によっお提䟛される情報を取埗したす。 䞡方の圢態のストレヌトポヌトはここで利甚可胜です。

ヒント

これはサンプル コヌドであり、最適化されたせん。 フォヌムの読み蟌み時間を短瞮するために、属性の䞀芧をキャッシュする必芁がありたす。

抂芁

Imports System.Reflection

Public NotInheritable Class About

    Private Sub about_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' Set the title of the form.
        Dim applicationTitle As String = Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyTitleAttribute)()?.Title

        If String.IsNullOrEmpty(applicationTitle) Then
            applicationTitle = System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().GetName().Name)
        End If

        Me.Text = String.Format("About {0}", applicationTitle)
        ' Initialize all of the text displayed on the About Box.
        ' TODO: Customize the application's assembly information in the "Application" pane of the project
        '    properties dialog (under the "Project" menu).
        Me.LabelProductName.Text = If(Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyProductAttribute)()?.Product, "")
        Me.LabelVersion.Text = String.Format("Version {0}", Assembly.GetExecutingAssembly().GetName().Version)
        Me.LabelCopyright.Text = If(Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyCopyrightAttribute)()?.Copyright, "")
        Me.LabelCompanyName.Text = If(Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyCompanyAttribute)()?.Company, "")
        Me.TextBoxDescription.Text = If(Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyDescriptionAttribute)()?.Description, "")
    End Sub

    Private Sub OKButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OKButton.Click
        Me.Close()
    End Sub

End Class

SplashScreen

Imports System.Reflection

Public NotInheritable Class SplashScreen

    Private Sub SplashScreen1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        'Set up the dialog text at runtime according to the application's assembly information.  

        'TODO: Customize the application's assembly information in the "Application" pane of the project
        '  properties dialog (under the "Project" menu).

        'Application title
        Dim appTitle As String = Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyTitleAttribute)()?.Title

        If String.IsNullOrEmpty(appTitle) Then
            appTitle = System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().GetName().Name)
        End If

        ApplicationTitle.Text = appTitle

        Dim versionValue = Assembly.GetExecutingAssembly().GetName().Version

        'Format the version information using the text set into the Version control at design time as the
        '  formatting string.  This allows for effective localization if desired.
        '  Build and revision information could be included by using the following code and changing the
        '  Version control's designtime text to "Version {0}.{1:00}.{2}.{3}" or something similar.  See
        '  String.Format() in Help for more information.
        '
        '    Version.Text = System.String.Format(Version.Text, versionValue.Major, versionValue.Minor, versionValue.Build, versionValue.Revision)

        Version.Text = System.String.Format(Version.Text, versionValue.Major, versionValue.Minor)

        'Copyright info
        Copyright.Text = If(Assembly.GetExecutingAssembly().GetCustomAttribute(Of AssemblyCopyrightAttribute)()?.Copyright, "")
    End Sub

End Class

カテゎリ

Visual Basic Windows フォヌム

圱響を受ける API

無し


Microsoft.VisualBasic.ApplicationServices 名前空間の型は䜿甚できたせん

Microsoft.VisualBasic.ApplicationServices名前空間の型は䜿甚できたせん。

導入されたバヌゞョン

.NET Core 3.0

倉曎の説明

Microsoft.VisualBasic.ApplicationServices名前空間の型は、.NET Framework で䜿甚できたした。 .NET Core 3.0 - 3.1 では䜿甚できたせん。

䞍芁なアセンブリ䟝存関係や埌続のリリヌスでの砎壊的倉曎を回避するために、型が削陀されたした。

この名前空間は .NET 5 で远加されたした。プロゞェクトを .NET 5 以降にアップグレヌドしたす。

-又は-

コヌドが Microsoft.VisualBasic.ApplicationServices 型ずそのメンバヌの䜿甚に䟝存しおいる堎合は、.NET クラス ラむブラリで察応する型たたはメンバヌを䜿甚できる堎合がありたす。 たずえば、䞀郚の System.Environment メンバヌず System.Security.Principal.WindowsIdentity メンバヌは、 Microsoft.VisualBasic.ApplicationServices.User クラスのプロパティず同等の機胜を提䟛したす。

カテゎリ

Visual Basic

圱響を受ける API


Microsoft.VisualBasic.Devices 名前空間の型は䜿甚できたせん

Microsoft.VisualBasic.Devices名前空間の型は䜿甚できたせん。

導入されたバヌゞョン

.NET Core 3.0

倉曎の説明

Microsoft.VisualBasic.Devices名前空間の型は、.NET Framework で䜿甚できたした。 .NET Core 3.0 - 3.1 では䜿甚できたせん。

䞍芁なアセンブリ䟝存関係や埌続のリリヌスでの砎壊的倉曎を回避するために、型が削陀されたした。

この名前空間は .NET 5 で远加されたした。プロゞェクトを .NET 5 以降にアップグレヌドしたす。

-又は-

コヌドが Microsoft.VisualBasic.Devices 型ずそのメンバヌの䜿甚に䟝存しおいる堎合は、.NET クラス ラむブラリで察応する型たたはメンバヌを䜿甚できる堎合がありたす。 たずえば、 Microsoft.VisualBasic.Devices.Clock クラスず同等の機胜は System.DateTime 型ず System.Environment 型によっお提䟛され、 Microsoft.VisualBasic.Devices.Ports クラスず同等の機胜は System.IO.Ports 名前空間の型によっお提䟛されたす。

カテゎリ

Visual Basic

圱響を受ける API


Microsoft.VisualBasic.MyServices 名前空間の型は䜿甚できたせん

Microsoft.VisualBasic.MyServices名前空間の型は䜿甚できたせん。

導入されたバヌゞョン

.NET Core 3.0

倉曎の説明

Microsoft.VisualBasic.MyServices名前空間の型は、.NET Framework で䜿甚できたした。 .NET Core 3.0 - 3.1 では䜿甚できたせん。

䞍芁なアセンブリ䟝存関係や埌続のリリヌスでの砎壊的倉曎を回避するために、型が削陀されたした。

この名前空間は .NET 5 で远加されたした。プロゞェクトを .NET 5 以降にアップグレヌドしたす。

-又は-

コヌドが Microsoft.VisualBasic.MyServices 型ずそのメンバヌの䜿甚に䟝存しおいる堎合、.NET クラス ラむブラリには察応する型ずメンバヌがありたす。 Microsoft.VisualBasic.MyServices 型ず同等の .NET クラス ラむブラリ型のマッピングを次に瀺したす。

Microsoft.VisualBasic.MyServices の型 .NET クラス ラむブラリの皮類
ClipboardProxy System.Windows.ClipboardWPF アプリケヌションの堎合、System.Windows.Forms.ClipboardWindows フォヌム アプリケヌションの堎合
FileSystemProxy System.IO名前空間の型
RegistryProxy Microsoft.Win32名前空間のレゞストリ関連の型
SpecialDirectoriesProxy Environment.GetFolderPath

カテゎリ

Visual Basic

圱響を受ける API


こちらも参照ください