如何:创建 Windows Presentation Foundation XAML 浏览器应用程序的示例项目文件

更新:2007 年 11 月

此示例项目文件针对 XAML 浏览器应用程序 (XBAP)。它有一个应用程序定义文件 App,该文件配置为自动打开一个用 XAML 和隐藏代码定义的页面 HomePage。主要配置详细信息包括:

  • OutputType。设置为 winexe。

  • HostInBrowser。必须设置为 true,因为 XAML 浏览器应用程序 (XBAP) 必须是浏览器承载的。

  • Install。必须设置为 false,因为不安装 XAML 浏览器应用程序 (XBAP)。

  • TargetZone。必须设置为“Internet”,因为 XAML 浏览器应用程序 (XBAP) 在 Internet 安全区域运行。

  • StartAction。必须设置为“Program”。

  • StartProgram。必须设置为处理在浏览器中承载该应用程序的进程的程序。

  • StartArguments。必须设置为应用程序清单(扩展名为 .xbap)的路径。

  • App.xaml。此应用程序定义文件配置为 ApplicationDefinition 元素。

  • HomePage.xaml。声明为 Page 元素的 XAML 文件。

  • HomePage.xaml.cs。声明为 Compile 元素的代码隐藏文件。

  • XBAPApplication_TemporaryKey.pfx。使用 ClickOnce 部署的应用程序(包括 XBAP)所要求的临时清单密钥文件。

您可以根据自己的需要重用或修改此项目文件,但前提是所引用的文件位于您正在从中引用文件的位置。也可以通过使用 Microsoft Visual Studio 2005 中的 XAML 浏览器应用程序 (WPF) 项目模板自动生成 XBAP 的项目文件。

此项目文件适用于 C# 项目,因此包括 Microsoft.CSharp.targets Import 元素。Microsoft Visual Studio 2005 为 C# 项目文件指定 .csproj 扩展名。在 Microsoft Visual Studio 2005 中创建的 Microsoft Visual Basic .NET 的扩展名通常为 .vbproj,并包括 Microsoft.VisualBasic.targetsImport 元素。

示例

<Project DefaultTargets="Build" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <RootNamespace>XBAPApplication</RootNamespace>
    <AssemblyName>XBAPApplication</AssemblyName>
    <WarningLevel>4</WarningLevel>
    <OutputType>winexe</OutputType>
    <EnableSecurityDebugging>false</EnableSecurityDebugging>
    <ApplicationVersion>1.0.0.*</ApplicationVersion>
    <MapFileExtensions>False</MapFileExtensions>
    <HostInBrowser>True</HostInBrowser>
    <Install>False</Install>
    <TargetZone>Internet</TargetZone>
    <StartAction>Program</StartAction>
    <StartProgram>$(WINDIR)\System32\PresentationHost.exe</StartProgram>
    <ApplicationExtension>.xbap</ApplicationExtension>
    <StartArguments>-debug "$(MSBuildProjectDirectory)\bin\$(Configuration)\$(AssemblyName)$(ApplicationExtension)"</StartArguments>
    <SignManifests>True</SignManifests>
    <BootstrapperEnabled>false</BootstrapperEnabled>
    <ManifestKeyFile>XBAPApplication_TemporaryKey.pfx</ManifestKeyFile>
    <ManifestCertificateThumbprint>F2E49D0E8A6FE749DE85D224F5557B875DFD5577</ManifestCertificateThumbprint>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>.\bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugSymbols>false</DebugSymbols>
    <Optimize>true</Optimize>
    <OutputPath>.\bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="WindowsBase" />
    <Reference Include="PresentationCore" />
    <Reference Include="PresentationFramework" />
  </ItemGroup>
  <ItemGroup>
    <ApplicationDefinition Include="App.xaml" />
    <Page Include="HomePage.xaml" />
    <Compile Include="HomePage.xaml.cs" />
  </ItemGroup>
  <ItemGroup>
    <None Include="XBAPApplication_TemporaryKey.pfx" />
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />
</Project>