none
.NET5.0/.NET6.0でWPFを発行できません RRS feed

  • 質問

  • Windows10+Visual Studio 2019 PreviewでWPFのアプリ開発を浅学ながら行っています。今まででしたら発行を行えば、publishファイルとは別にx86やx64ファイル内に展開されたexeファイルを含むプログラムを使用することでアプリを使用できていたのですが、最近デバッグでは正常に動作するのですが、発行を行うとエラーが出て、発行ができないという問題に突き当たっております。


    自分の作成したプログラムに問題があると思いまして、空のWPFプロジェクトWpfApp3を作成して、
    編集を行わず、発行を行ったのですが、同じエラーが出力され発行が失敗してしまいました。自己完結・フレームワーク依存でも同様でした。

    エラー出力は以下の通りです

    -----------------------------------------------------

    1>------ ビルド開始: プロジェクト: WpfApp3, 構成: Release Any CPU ------
    1>プレビュー版の .NET を使用しています。https://aka.ms/dotnet-core-preview をご覧ください
    1>WpfApp3 -> (省略)\WpfApp3\WpfApp3\bin\Release\net6.0-windows\WpfApp3.dll
    2>------ 公開の開始: プロジェクト:WpfApp3, 構成: Release Any CPU ------
    2>復元対象のプロジェクトを決定しています...
    2>復元対象のすべてのプロジェクトは最新です。
    2>資産ファイル '(省略)\WpfApp3\WpfApp3\obj\project.assets.json' に 'net6.0-windows/win-x86' のターゲットがありません。復元が実行されたこと、および 'net6.0-windows' がプロジェクトの TargetFrameworks に含まれていることを確認してください。プロジェクトの RuntimeIdentifiers に 'win-x86' を組み込む必要が生じる可能性もあります。
    ========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
    ========== 公開: 0 正常終了、1 失敗、0 スキップ ==========

    -----------------------------------------------------

    FolderProfile.pubxmlは以下のような記述になっております。

    <?xml version="1.0" encoding="utf-8"?>
    <!--
    https://go.microsoft.com/fwlink/?LinkID=208121. 
    -->
    <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <Configuration>Release</Configuration>
        <Platform>Any CPU</Platform>
        <PublishProtocol>FileSystem</PublishProtocol>
        <TargetFramework>net6.0-windows</TargetFramework>
        <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
        <RuntimeIdentifier>win-x86</RuntimeIdentifier>
        <SelfContained>true</SelfContained>
        <PublishSingleFile>False</PublishSingleFile>
        <PublishReadyToRun>False</PublishReadyToRun>
        <PublishTrimmed>False</PublishTrimmed>
        <PublishDir>bin\Debug\net6.0-windows\publish\</PublishDir>
      </PropertyGroup>
    </Project>

    ネット上でいろいろ調べて、試してみたのですが同様のエラーについての記事も見当たらず困惑しております。どうかお知恵をお貸し願えないでしょうか。よろしくお願いします。

    [追記].NET 5についてはマニフェストなし、CLIを用いて

    ”dotnet publish -c Release -r win-x86 --self-contained true”

    で発行を行えば、無事publishファイル内のアプリが動きました。(4/3 13:49)


    2021年4月2日 17:28

すべての返信

  • > 今まででしたら発行を行えば、publishファイルとは別にx86やx64ファイル内に展開されたexeファイルを含むプログラムを使用することでアプリを使用できていたのですが、最近デバッグでは正常に動作するのですが、発行を行うとエラーが出て、発行ができないという問題に突き当たっております。

    「今まで」と「発行を行うとエラー」という現状とでは何が違うのですか? 「今まで」は .NET Core 3.1 とか?
    2021年4月3日 0:38
  • お返事ありがとうございます。

    「今まで」とは、Visual Studioの発行のUIが変更する以前です。

    去年の12月あたりだと思うのですが、

    CoreCLR Version: 5.0.20.51904
    .NET Version: 5.0.0

    という条件で自己完結で発行を行って、発行もうまくいっておりました。しかし

    System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 指定されたファイルが見つかりません。

    というエラーが表示され、余儀なくx64やx86ファイル内に展開されたファイルが.NET5がインストールされていないPCでもうまく動くのでを使用しておりました。

    2021年4月3日 1:49
  • harugumoFMさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    空のWPF.NET6でテストを行ったところ、正常に機能しました。

    以下の手順に従って、アプリケーションを公開してみてください。
    プロジェクト名を右クリック->公開->フォルダ-> ClickOnce->…
    また、[構成]ページで、[ターゲットランタイム]を[ポータブル]に変更します。

     
    成功しなかった場合は、公開とエラーの特定の手順に関する詳細情報をご提供いただけますでしょうか。

    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2021年4月8日 1:39
    モデレータ
  • harugumoFMさん、こんにちは。フォーラムオペレーターのHarukaです。

    ご質問いただいた件ですが、その後いかがでしょうか。
    追加でご確認いただいたことなどあれば、追記いただくことで回答がつきやすくなります。

    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2021年4月19日 1:15
    モデレータ
  • 返信いただきありがとうございます。
    返事が遅くなり申し訳ありません。

    空のプロジェクトですが、ターゲットランタイムをPortable(移植可能)にすることで、
    Publish内で展開されたアプリが、正常に動作することが確認できました。ありがとうございます。

    一方、自作プログラムですが、最近の更新をすべて適用したものの、
    ターゲットフレームワークに移植可能(Portable)がなく、通常通りwin-x86で発行を行ったところ、

    System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 指定されたファイルが見つかりません。

    のエラーでやはりpublishは実行は厳しいです。

    CLI経由で
    ”dotnet publish -c Release -r win-x86 --self-contained true”
    で発行したファイルは正常に動作します。

    2021年5月6日 23:09