プログラマーな日々

プログラマーをやっています。好きなものは、C#, TaskChute Cloud, WorkFlowy, Backlog, AWSです。

XBAPにコードを追加する

Visual Studioで「WPFブラウザーアプリケーション」のプロジェクトを作成し、"Hello World"を現在時刻で書きかえる処理を追加しただけのアプリです。

結局動作させることはできなかったが、後のために過程を残しておきます。

プロジェクトの設定

プロジェクトのプロパティの「署名」タブの「ClickOnceマニフェストに署名する」をチェックされていることを確認。

プロジェクト構成


App.xaml

デフォルトのままです。

<Application x:Class="CurrentTime.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="Page1.xaml">
    <Application.Resources>
        
    </Application.Resources>
</Application>

App.xaml.cs

デフォルトのままです。

using System.Windows;

namespace CurrentTime {
    /// <summary>
    /// App.xaml の相互作用ロジック
    /// </summary>
    public partial class App : Application {
    }
}

Page1.xaml

<Page x:Class="CurrentTime.Page1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      Title="Page1">
    <TextBox x:Name="text1" FontSize="24">Hello World</TextBox>
</Page>

Page1.xaml.cs

using System;
using System.Windows.Controls;

namespace CurrentTime {
    /// <summary>
    /// Page1.xaml の相互作用ロジック
    /// </summary>
    public partial class Page1 : Page {
        public Page1() {
            InitializeComponent();

            text1.Text = "現在の時刻:" + DateTime.Now.ToString();
        }
    }
}

ビルド

前回はマークアップのみなのでビルドは不要でしたが、今回はコードを追加したのでビルドします。

アプリ実行

ビルドで作成された「CurrentTime.xbap」を実行したが、以下の事象が発生し、正常に動作しなかった。

事象

「ダウンロードしています...」のまま進捗しない。

トラブルシュートの履歴

Visual Studioから実行すると正常に表示されるので、ソースコードの問題ではない。


リンク先を参考に以下を試したが、いずれも事象は同じ。

Windows Presentation Foundation XAML ブラウザ アプリケーションの概要
XAML ブラウザ アプリケーション (XBAP) は、Web アプリケーションとリッチ クライアント アプリケーションの両方の機能を組み合わせます。XBAP は、Web アプリケーションと同じように、Web サーバーに公開して Internet Explorer から起動できます。また、リッチ クライアント アプリケーションと同じように、XBAP で WPF の機能を活用できます。XBAP の開発もリッチ クライアントの開発に似ています。このトピックでは、XBAP 開発の概略を示し、XBAP 開発が標準的なリッチ クライアント開発と異なる点を中心に説明します。 ...

  • Inetpub\wwwroot配下に発行して、発行ページから実行
  • バージョン番号をインクリメントして再発行し、発行ページから実行
  • 「Mage.exe -cc」でキャッシュされたXBAPを削除した後に、ビルドして実行
  • 「ソリューションのクリーン」→「ソリューションのリビルド」の後に実行

以降11/26追記

  • プロジェクトの「セキュリティ」タブ
    • 「アプリケーションがインストールされるゾーン」を「ローカルイントラネット」に変更
    • 「これは部分的に信頼するアプリケーションです」を「...完全に信頼する...」に変更
    • 「ClickOnceセキュリティ設定を有効にする」のチェックを外してビルド→.xbapファイルが作成されず

結局解決できず...