部署XBAP应用程序?

问题描述:

我们有一个WPF应用程序,它具有两种风格,具有一致的UI等,一种从Windows OS桌面运行,另一种应作为XBAP应用程序运行.

We have a WPF Application that has a two flavors with a consistent UI etc,one that runs from a Windows OS Desktop and one that is supposed to run as an XBAP application.

当前,我正在将XBAP应用程序发布到我的本地主机IIS(Windows XP Pro)中,此外,我还根据需要启用了对我的方案的完全信任(Microsoft .NET Framework 2.0配置,URL完全信任)+ pfx文件(代表我的计算机名称)是在另一台计算机上的用户从其计算机上IE浏览器键入URL时安装的.

Currently I am publishing the XBAP application to my localhost machine IIS (Windows XP Pro),Also I have enabled full trust in my scenario as it is needed(Microsoft .NET Framework 2.0 Configuration,URL Full trust) + pfx file(for my machine name) that gets installed when a user on another machine types the URL from the IE browser on his machine.

说我想将XBAP应用程序出售给客户,因为他想要一个集中式应用程序而不是台式机,那么我将如何处理呢?有XBAP部署经验的人可以告诉我吗?我是否应该进行设置以在其Web服务器上设置应用程序,仅此而已? (假设Web服务器具有.net 3.5 sp1)那我应该告诉pfx和完全信任该怎么办?

Say I want to sell the XBAP application to a customer since he wants a centralized app rather than a desktop one then how will I go about it? Can someone with XBAP deployment experience tell me ? Should I make a setup that will set up the application on his web server and that's it? (assuming web server has .net 3.5 sp1) What about pfx and full trust should I tell him to do that ?

我曾在类似的情况下使用ClickOnce作为引擎来将二进制文件部署为XBAP和标准WPF.要在客户站点上安装XBAP网站,我们将让安装程序在IIS中创建虚拟目录,然后运行自定义步骤来对ClickOnce清单进行签名.此步骤是必需的,因为应用程序需要访问包含有关客户环境信息的生成的配置文件.

I have worked in a similar situation of using ClickOnce as the engine to deploy the binaries as XBAP as well as standard WPF. To install the XBAP website at a customer site, we would have an installer create the virtual directory in IIS and then run a custom step to sign the ClickOnce manifests. This step was necessary as the application needed to access a generated configuration file that contained information about the customer environment.

以下是一些有关使用XBAP遇到的问题的说明.

Here are some notes on issues that I've seen with using XBAP.

  • 客户端工作站上Framework v3.0或更高版本的依赖性. (在处理WPF时,更多的一般注意事项,因为除非您使用的是受控桌面,否则可能还必须部署它)
  • 莫名其妙地,用户的ClickOnce缓存将失效,要求用户必须使用以下命令清除其缓存:rundll32%windir%\ system32 \ dfshim.dll CleanOnlineAppCache
  • Framework v3.0/Internet Explorer的错误安装要求重新创建用户的配置文件,重新安装dotNet框架或重新安装Internet Explorer.
  • 当部署失败时,来自ClickOnce的错误消息少.很多时候它会报告一般的部署异常,而修复程序将是上述步骤之一.
  • 在网站前使用任何身份验证(例如ASP.Net表单身份验证,IIS受信任(不在Intranet上)或ISA之类的代理)时,Microsoft堆栈中存在一个问题,即IE无法将身份验证传递给ClickOnce引擎.问题在于,IE将成功进行身份验证,但无法将安全上下文传递给ClickOnce.当ClickOnce尝试部署应用程序文件时,它将没有安全上下文,并且身份验证将失败.但是,如果您转到Internet选项->安全->选择本地Intranet"->单击自定义级别...",您将看到设置列表.滚动到列表的底部,然后在用户身份验证->登录->"下,确保选中了使用当前用户名和密码自动登录"选项.这应该允许IE将身份验证信息传递给click单击应用程序.