前置き
祝 Visual Studio 2026 + .NET 10 リリース!ということで、以前断念していた件に再挑戦してみた。
というのも、SDK スタイルのプロジェクトファイルで .NET Framework をターゲットにした WPF アプリを作ると、発行方法として ClickOnce が選べないというもの。
回避策
TargetFrameworks で .NET をターゲットに加える
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFrameworks>net10.0-windows;net472</TargetFrameworks>
<UseWPF>true</UseWPF>
<PlatformTarget>AnyCPU</PlatformTarget> <!-- 既定値が何故か x86 になる -->
<Nullable>disable</Nullable> <!-- LangVersion を変えないかぎり使えない -->
</PropertyGroup>
</Project>
ポイントは TargetFramework を TargetFrameworks にして、先頭に net10.0-windows を持ってくること(.NET のバージョンは 6 以上ならなんでもいいと思う)。
これで IDE は「このプロジェクトは .NET だな」と勘違いして、ClickOnce 配置が選べるようになる。
ちゃんと構成でターゲットに .NET Framework を選択でき、ローカルフォルダへの発行も成功する。発行関連のプロパティが .csproj から .pubxml に移るので、.csproj がかなりすっきりする。
なお、ちゃんと ClickOnce が動作するかは不明である。
