もくじ
https://tera1707.com/entry/2022/02/06/144447#WinUI3
やりたいこと
WinUI3のテンプレートを使ってビルドし、出来上がったexeをダブルクリックしても、アプリ起動しなかった。 exe単独で起動させたい。
前提
やったこと
Windows App SDKをインストール
Windows App SDK をダウンロードする。 docs.microsoft.com
ダウンロードしたzipファイルを解凍してできた下記ファイルを実行する。
Microsoft.WindowsAppRuntime.Redist.1.0.0\WindowsAppSDK-Installer-x64\WindowsAppRuntimeInstall.exe
プロジェクトの作成
空のアプリ、パッケージ化(デスクトップのWinUI3)
のテンプレートでWinUI3プロジェクトを作成する。
WindowsPackageTypeの設定
csprojに手書きで、下記を追加する。
<WindowsPackageType>None</WindowsPackageType>
実際に上記を書き込んだcsprojはこちら。
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework> <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion> <RootNamespace>App5</RootNamespace> <ApplicationManifest>app.manifest</ApplicationManifest> <Platforms>x86;x64;arm64</Platforms> <RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers> <PublishProfile>win10-$(Platform).pubxml</PublishProfile> <UseWinUI>true</UseWinUI> <EnablePreviewMsixTooling>true</EnablePreviewMsixTooling> <WindowsPackageType>None</WindowsPackageType> </PropertyGroup> <ItemGroup> <Content Include="Assets\SplashScreen.scale-200.png" /> <Content Include="Assets\LockScreenLogo.scale-200.png" /> <Content Include="Assets\Square150x150Logo.scale-200.png" /> <Content Include="Assets\Square44x44Logo.scale-200.png" /> <Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" /> <Content Include="Assets\StoreLogo.png" /> <Content Include="Assets\Wide310x150Logo.scale-200.png" /> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.0.0" /> <PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22000.194" /> <Manifest Include="$(ApplicationManifest)" /> </ItemGroup> <!-- Defining the "Msix" ProjectCapability here allows the Single-project MSIX Packaging Tools extension to be activated for this project even if the Windows App SDK Nuget package has not yet been restored --> <ItemGroup Condition="'$(DisableMsixProjectCapabilityAddedByProject)'!='true' and '$(EnablePreviewMsixTooling)'=='true'"> <ProjectCapability Include="Msix"/> </ItemGroup> </Project>
アプリ名(Unpackaged)を選択する。
VS2022の「起動ドロップダウン」で、Unpackaged
のプロジェクト名を選択する。
ビルドしてできたexeを実行する
exeを実行すると、アプリが起動する。
参考
下記のMS公式を参考に作業した。
参考書
WinUI3
WinUI3でアプリを作ろうと思ったときのとっかかりによかった。
msdocsに書いてある情報を、体系的に、順番に読みたいな、というときによいかも。(ただし英語)
この本で分からなかった、かゆいところに手が届かなかった部分を私は記事にしてる感じ。
C#①
表紙に書いてある通り、教科書として最適。
これからC#を勉強したいけど、ネットだけで勉強するのは効率が悪いから体系的に学べる本が欲しいときや、
ちょっとC#を勉強してコード書けるようになったけど、もう少し広く深く知りたいなというときによいと思う。
私は仕事で触れるコードを軸に、基本ネットで断片的にC#を学んだので、その知識の隙間を埋めて枝葉を広げるためにとても分かりやすかった。
C#②
C#の文法的に色々できるのは分かったが、いざ実装するときに、わかったことを使ってどう実装すればいいのか?と悩んだときに指針になりそうな本。
「プロパティ等の名前の付け方、どうすればいい?」「情報をクラス外部に見せるときに、プロパティにすべき?メソッドにすべき?」「異常だと判定したいとき、どんなときにどんな例外をスローすべき?」などなど、勉強になる部分が山ほどあった。
私のように「コードは書くけどこれであってるのか自信がない、レビューで指摘されるのが嫌だ、実装時の(心の)よりどころが欲しい」という人に最適。