もくじ
https://tera1707.com/entry/2022/02/06/144447#WinUI3
WinUI3でSelfContained=trueでビルドすると出るエラー対処 その1
https://tera1707.com/entry/2022/03/19/000916
WinUI3でSelfContained=trueでビルドすると出るエラー対処 その2
https://tera1707.com/entry/2022/03/19/004221
WinUI3でSelfContained=trueでビルドすると出るエラー対処 その3
https://tera1707.com/entry/2022/03/19/010307
やりたいこと
前々回と前回で、WinUI3のプロジェクト設定周りのエラーをいろいろ解決してきたが、まだエラーが残っている。
前回行った対処で、指定された RuntimeIdentifier 'win10-arm' で利用できる Microsoft.WindowsDesktop.App.WPF のランタイム パックがありませんでした
というエラーは消えた。
が、まだ下記のようなエラーが新たに起きた。
エラー NETSDK1150 参照先プロジェクト '..\..\SubWpfPJ\SubWpfPJ.csproj' は自己完結型以外の実行可能ファイルです。 自己完結型以外の実行可能ファイルは、自己完結型の実行可能ファイルでは参照できません。詳細については、「https://aka.ms/netsdk1150」を参照してください
これは、メッセージの内容から判別が簡単にできた。
メインのプロジェクトから参照しているサブのプロジェクトが、SelfContainedになっていなかった。
サブプロジェクトのcsprojに、メインと同じように<SelfContained>true</SelfContained>
、<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
、<RuntimeIdentifiers>win10-x64</RuntimeIdentifiers>
を付けてやる。
これで解決と思いきや、もうひとつエラーが出た。
が、メモする前に一度ソリューションをクリーンして、再度ビルドするとエラーが出なくなってしまった。
(ここまでやった後は、クリーンすればOKっぽい)
以上をすべて行うと、エラーは解消された。
そうしてできたパッケージでインストールした結果、できたインストール先フォルダは下記のような構成だった。
(ちゃんと、1つのフォルダにメインとサブのexeが入っていて、ランタイム類も入っている)
C:. │ App.xbf │ AppxManifest.xml │ MainWindow.xbf │ resources.pri │ ucrtbased.dll │ vs.appxrecipe │ ├─Images │ LockScreenLogo.scale-200.png │ SplashScreen.scale-200.png │ Square150x150Logo.scale-200.png │ Square44x44Logo.scale-200.png │ Square44x44Logo.targetsize-24_altform-unplated.png │ StoreLogo.png │ Wide310x150Logo.scale-200.png │ └─WinUI3PJTest │ Accessibility.dll │ api-ms-win-core-console-l1-1-0.dll │ api-ms-win-core-console-l1-2-0.dll │ api-ms-win-core-datetime-l1-1-0.dll │ api-ms-win-core-debug-l1-1-0.dll │ api-ms-win-core-errorhandling-l1-1-0.dll │ api-ms-win-core-file-l1-1-0.dll │ api-ms-win-core-file-l1-2-0.dll │ api-ms-win-core-file-l2-1-0.dll │ api-ms-win-core-handle-l1-1-0.dll │ api-ms-win-core-heap-l1-1-0.dll │ api-ms-win-core-interlocked-l1-1-0.dll │ api-ms-win-core-libraryloader-l1-1-0.dll │ api-ms-win-core-localization-l1-2-0.dll │ api-ms-win-core-memory-l1-1-0.dll │ api-ms-win-core-namedpipe-l1-1-0.dll │ api-ms-win-core-processenvironment-l1-1-0.dll │ api-ms-win-core-processthreads-l1-1-0.dll │ api-ms-win-core-processthreads-l1-1-1.dll │ api-ms-win-core-profile-l1-1-0.dll │ api-ms-win-core-rtlsupport-l1-1-0.dll │ api-ms-win-core-string-l1-1-0.dll │ api-ms-win-core-synch-l1-1-0.dll │ api-ms-win-core-synch-l1-2-0.dll │ api-ms-win-core-sysinfo-l1-1-0.dll │ api-ms-win-core-timezone-l1-1-0.dll │ api-ms-win-core-util-l1-1-0.dll │ api-ms-win-crt-conio-l1-1-0.dll │ api-ms-win-crt-convert-l1-1-0.dll │ api-ms-win-crt-environment-l1-1-0.dll │ api-ms-win-crt-filesystem-l1-1-0.dll │ api-ms-win-crt-heap-l1-1-0.dll │ api-ms-win-crt-locale-l1-1-0.dll │ api-ms-win-crt-math-l1-1-0.dll │ api-ms-win-crt-multibyte-l1-1-0.dll │ api-ms-win-crt-private-l1-1-0.dll │ api-ms-win-crt-process-l1-1-0.dll │ api-ms-win-crt-runtime-l1-1-0.dll │ api-ms-win-crt-stdio-l1-1-0.dll │ api-ms-win-crt-string-l1-1-0.dll │ api-ms-win-crt-time-l1-1-0.dll │ api-ms-win-crt-utility-l1-1-0.dll │ App.xbf │ clretwrc.dll │ clrjit.dll │ coreclr.dll │ createdump.exe │ D3DCompiler_47_cor3.dll │ dbgshim.dll │ DirectWriteForwarder.dll │ hostfxr.dll │ hostpolicy.dll │ MainWindow.xbf │ Microsoft.CSharp.dll │ Microsoft.DiaSymReader.Native.amd64.dll │ Microsoft.InteractiveExperiences.Projection.dll │ Microsoft.VisualBasic.Core.dll │ Microsoft.VisualBasic.dll │ Microsoft.VisualBasic.Forms.dll │ Microsoft.Win32.Primitives.dll │ Microsoft.Win32.Registry.AccessControl.dll │ Microsoft.Win32.Registry.dll │ Microsoft.Win32.SystemEvents.dll │ Microsoft.Windows.ApplicationModel.DynamicDependency.Projection.dll │ Microsoft.Windows.ApplicationModel.Resources.Projection.dll │ Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.dll │ Microsoft.Windows.AppLifecycle.Projection.dll │ Microsoft.Windows.SDK.NET.dll │ Microsoft.Windows.System.Power.Projection.dll │ Microsoft.WindowsAppRuntime.Bootstrap.dll │ Microsoft.WindowsAppRuntime.Bootstrap.Net.dll │ Microsoft.WinUI.dll │ mscordaccore.dll │ mscordaccore_amd64_amd64_6.0.222.6406.dll │ mscordbi.dll │ mscorlib.dll │ mscorrc.dll │ msquic.dll │ netstandard.dll │ PenImc_cor3.dll │ PresentationCore.dll │ PresentationFramework-SystemCore.dll │ PresentationFramework-SystemData.dll │ PresentationFramework-SystemDrawing.dll │ PresentationFramework-SystemXml.dll │ PresentationFramework-SystemXmlLinq.dll │ PresentationFramework.Aero.dll │ PresentationFramework.Aero2.dll │ PresentationFramework.AeroLite.dll │ PresentationFramework.Classic.dll │ PresentationFramework.dll │ PresentationFramework.Luna.dll │ PresentationFramework.Royale.dll │ PresentationNative_cor3.dll │ PresentationUI.dll │ ReachFramework.dll │ SubWpfPJ.deps.json │ SubWpfPJ.dll │ SubWpfPJ.exe │ SubWpfPJ.runtimeconfig.json │ System.AppContext.dll │ System.Buffers.dll │ System.CodeDom.dll │ System.Collections.Concurrent.dll │ System.Collections.dll │ System.Collections.Immutable.dll │ System.Collections.NonGeneric.dll │ System.Collections.Specialized.dll │ System.ComponentModel.Annotations.dll │ System.ComponentModel.DataAnnotations.dll │ System.ComponentModel.dll │ System.ComponentModel.EventBasedAsync.dll │ System.ComponentModel.Primitives.dll │ System.ComponentModel.TypeConverter.dll │ System.Configuration.ConfigurationManager.dll │ System.Configuration.dll │ System.Console.dll │ System.Core.dll │ System.Data.Common.dll │ System.Data.DataSetExtensions.dll │ System.Data.dll │ System.Design.dll │ System.Diagnostics.Contracts.dll │ System.Diagnostics.Debug.dll │ System.Diagnostics.DiagnosticSource.dll │ System.Diagnostics.EventLog.dll │ System.Diagnostics.FileVersionInfo.dll │ System.Diagnostics.PerformanceCounter.dll │ System.Diagnostics.Process.dll │ System.Diagnostics.StackTrace.dll │ System.Diagnostics.TextWriterTraceListener.dll │ System.Diagnostics.Tools.dll │ System.Diagnostics.TraceSource.dll │ System.Diagnostics.Tracing.dll │ System.DirectoryServices.dll │ System.dll │ System.Drawing.Common.dll │ System.Drawing.Design.dll │ System.Drawing.dll │ System.Drawing.Primitives.dll │ System.Dynamic.Runtime.dll │ System.Formats.Asn1.dll │ System.Globalization.Calendars.dll │ System.Globalization.dll │ System.Globalization.Extensions.dll │ System.IO.Compression.Brotli.dll │ System.IO.Compression.dll │ System.IO.Compression.FileSystem.dll │ System.IO.Compression.Native.dll │ System.IO.Compression.ZipFile.dll │ System.IO.dll │ System.IO.FileSystem.AccessControl.dll │ System.IO.FileSystem.dll │ System.IO.FileSystem.DriveInfo.dll │ System.IO.FileSystem.Primitives.dll │ System.IO.FileSystem.Watcher.dll │ System.IO.IsolatedStorage.dll │ System.IO.MemoryMappedFiles.dll │ System.IO.Packaging.dll │ System.IO.Pipes.AccessControl.dll │ System.IO.Pipes.dll │ System.IO.UnmanagedMemoryStream.dll │ System.Linq.dll │ System.Linq.Expressions.dll │ System.Linq.Parallel.dll │ System.Linq.Queryable.dll │ System.Memory.dll │ System.Net.dll │ System.Net.Http.dll │ System.Net.Http.Json.dll │ System.Net.HttpListener.dll │ System.Net.Mail.dll │ System.Net.NameResolution.dll │ System.Net.NetworkInformation.dll │ System.Net.Ping.dll │ System.Net.Primitives.dll │ System.Net.Quic.dll │ System.Net.Requests.dll │ System.Net.Security.dll │ System.Net.ServicePoint.dll │ System.Net.Sockets.dll │ System.Net.WebClient.dll │ System.Net.WebHeaderCollection.dll │ System.Net.WebProxy.dll │ System.Net.WebSockets.Client.dll │ System.Net.WebSockets.dll │ System.Numerics.dll │ System.Numerics.Vectors.dll │ System.ObjectModel.dll │ System.Printing.dll │ System.Private.CoreLib.dll │ System.Private.DataContractSerialization.dll │ System.Private.Uri.dll │ System.Private.Xml.dll │ System.Private.Xml.Linq.dll │ System.Reflection.DispatchProxy.dll │ System.Reflection.dll │ System.Reflection.Emit.dll │ System.Reflection.Emit.ILGeneration.dll │ System.Reflection.Emit.Lightweight.dll │ System.Reflection.Extensions.dll │ System.Reflection.Metadata.dll │ System.Reflection.Primitives.dll │ System.Reflection.TypeExtensions.dll │ System.Resources.Extensions.dll │ System.Resources.Reader.dll │ System.Resources.ResourceManager.dll │ System.Resources.Writer.dll │ System.Runtime.CompilerServices.Unsafe.dll │ System.Runtime.CompilerServices.VisualC.dll │ System.Runtime.dll │ System.Runtime.Extensions.dll │ System.Runtime.Handles.dll │ System.Runtime.InteropServices.dll │ System.Runtime.InteropServices.RuntimeInformation.dll │ System.Runtime.Intrinsics.dll │ System.Runtime.Loader.dll │ System.Runtime.Numerics.dll │ System.Runtime.Serialization.dll │ System.Runtime.Serialization.Formatters.dll │ System.Runtime.Serialization.Json.dll │ System.Runtime.Serialization.Primitives.dll │ System.Runtime.Serialization.Xml.dll │ System.Security.AccessControl.dll │ System.Security.Claims.dll │ System.Security.Cryptography.Algorithms.dll │ System.Security.Cryptography.Cng.dll │ System.Security.Cryptography.Csp.dll │ System.Security.Cryptography.Encoding.dll │ System.Security.Cryptography.OpenSsl.dll │ System.Security.Cryptography.Pkcs.dll │ System.Security.Cryptography.Primitives.dll │ System.Security.Cryptography.ProtectedData.dll │ System.Security.Cryptography.X509Certificates.dll │ System.Security.Cryptography.Xml.dll │ System.Security.dll │ System.Security.Permissions.dll │ System.Security.Principal.dll │ System.Security.Principal.Windows.dll │ System.Security.SecureString.dll │ System.ServiceModel.Web.dll │ System.ServiceProcess.dll │ System.Text.Encoding.CodePages.dll │ System.Text.Encoding.dll │ System.Text.Encoding.Extensions.dll │ System.Text.Encodings.Web.dll │ System.Text.Json.dll │ System.Text.RegularExpressions.dll │ System.Threading.AccessControl.dll │ System.Threading.Channels.dll │ System.Threading.dll │ System.Threading.Overlapped.dll │ System.Threading.Tasks.Dataflow.dll │ System.Threading.Tasks.dll │ System.Threading.Tasks.Extensions.dll │ System.Threading.Tasks.Parallel.dll │ System.Threading.Thread.dll │ System.Threading.ThreadPool.dll │ System.Threading.Timer.dll │ System.Transactions.dll │ System.Transactions.Local.dll │ System.ValueTuple.dll │ System.Web.dll │ System.Web.HttpUtility.dll │ System.Windows.Controls.Ribbon.dll │ System.Windows.dll │ System.Windows.Extensions.dll │ System.Windows.Forms.Design.dll │ System.Windows.Forms.Design.Editors.dll │ System.Windows.Forms.dll │ System.Windows.Forms.Primitives.dll │ System.Windows.Input.Manipulations.dll │ System.Windows.Presentation.dll │ System.Xaml.dll │ System.Xml.dll │ System.Xml.Linq.dll │ System.Xml.ReaderWriter.dll │ System.Xml.Serialization.dll │ System.Xml.XDocument.dll │ System.Xml.XmlDocument.dll │ System.Xml.XmlSerializer.dll │ System.Xml.XPath.dll │ System.Xml.XPath.XDocument.dll │ ucrtbase.dll │ UIAutomationClient.dll │ UIAutomationClientSideProviders.dll │ UIAutomationProvider.dll │ UIAutomationTypes.dll │ vcruntime140_cor3.dll │ WindowsBase.dll │ WindowsFormsIntegration.dll │ WinRT.Runtime.dll │ WinUI3PJTest.deps.json │ WinUI3PJTest.dll │ WinUI3PJTest.exe │ WinUI3PJTest.runtimeconfig.json │ wpfgfx_cor3.dll │ ├─cs │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─de │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─es │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─fr │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─it │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─ja │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─ko │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─pl │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─pt-BR │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─ru │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─tr │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ ├─zh-Hans │ Microsoft.VisualBasic.Forms.resources.dll │ PresentationCore.resources.dll │ PresentationFramework.resources.dll │ PresentationUI.resources.dll │ ReachFramework.resources.dll │ System.Windows.Controls.Ribbon.resources.dll │ System.Windows.Forms.Design.resources.dll │ System.Windows.Forms.Primitives.resources.dll │ System.Windows.Forms.resources.dll │ System.Windows.Input.Manipulations.resources.dll │ System.Xaml.resources.dll │ UIAutomationClient.resources.dll │ UIAutomationClientSideProviders.resources.dll │ UIAutomationProvider.resources.dll │ UIAutomationTypes.resources.dll │ WindowsBase.resources.dll │ WindowsFormsIntegration.resources.dll │ └─zh-Hant Microsoft.VisualBasic.Forms.resources.dll PresentationCore.resources.dll PresentationFramework.resources.dll PresentationUI.resources.dll ReachFramework.resources.dll System.Windows.Controls.Ribbon.resources.dll System.Windows.Forms.Design.resources.dll System.Windows.Forms.Primitives.resources.dll System.Windows.Forms.resources.dll System.Windows.Input.Manipulations.resources.dll System.Xaml.resources.dll UIAutomationClient.resources.dll UIAutomationClientSideProviders.resources.dll UIAutomationProvider.resources.dll UIAutomationTypes.resources.dll WindowsBase.resources.dll WindowsFormsIntegration.resources.dll
参考書
WinUI3
WinUI3でアプリを作ろうと思ったときのとっかかりによかった。
msdocsに書いてある情報を、体系的に、順番に読みたいな、というときによいかも。(ただし英語)
この本で分からなかった、かゆいところに手が届かなかった部分を私は記事にしてる感じ。
C#①
表紙に書いてある通り、教科書として最適。
これからC#を勉強したいけど、ネットだけで勉強するのは効率が悪いから体系的に学べる本が欲しいときや、
ちょっとC#を勉強してコード書けるようになったけど、もう少し広く深く知りたいなというときによいと思う。
私は仕事で触れるコードを軸に、基本ネットで断片的にC#を学んだので、その知識の隙間を埋めて枝葉を広げるためにとても分かりやすかった。
C#②
C#の文法的に色々できるのは分かったが、いざ実装するときに、わかったことを使ってどう実装すればいいのか?と悩んだときに指針になりそうな本。
「プロパティ等の名前の付け方、どうすればいい?」「情報をクラス外部に見せるときに、プロパティにすべき?メソッドにすべき?」「異常だと判定したいとき、どんなときにどんな例外をスローすべき?」などなど、勉強になる部分が山ほどあった。
私のように「コードは書くけどこれであってるのか自信がない、レビューで指摘されるのが嫌だ、実装時の(心の)よりどころが欲しい」という人に最適。