2

我们正在开发一个 WPF 应用程序,我们希望将其发布为单击一次的智能客户端应用程序。

我们能够使用 Visual Studio 2012 在本地计算机上发布应用程序并在 IIS 中对其进行配置。

现在我们要将发布的智能客户端安装程序上传到带有 Windows Server 2012 和 IIS 8 的 Windows Azure 虚拟机。我们无法上传本地发布的组件,因为清单和部署文件中的 URL 配置是本地服务器的配置。我们尝试使用文本编辑器编辑条目,但是一旦我们进行编辑,文件就会变得未使用,并且当我们尝试从该位置安装时它会显示 xml 解析错误。

我们尝试将应用程序直接发布到虚拟机,但它显示错误,因为 IIS 中需要 Front Page Extension。我们试图找到 Front Page 扩展,但在 Windows Server 2012 中找不到 IIS 8 的版本。

任何人都可以帮助我们在 Azure 虚拟机中发布应用程序。

4

2 回答 2

2

您遇到的问题与 Azure 本身无关。

在第一种情况下(编辑 XML 文件),您可以这样做,但最好使用 MageUI 进行编辑,因为您可以重新签署清单。如果您只是编辑文件,则会破坏它们的安全性,并且它们将无法工作(如您所见)。如果你想用文本编辑器编辑它们,你可以这样做,但你必须重新签名(使用 mage);您可以创建一个脚本来更改安装 URL。

或者你可以使用 MageUI。您需要按以下顺序执行此操作:

  1. 打开版本化文件夹中的应用程序清单,然后保存它,使用您的签名证书重新签名。
  2. 打开顶部部署文件夹中的部署清单 (yourapp.application)。将开始文件夹更改为正确的安装 URL。转到“应用程序引用”选项卡并重新选择版本化文件夹中的应用程序清单。(我知道,它没有改变,但相信我,您必须这样做。)保存此清单并使用您的签名证书对其进行签名。
  3. 将部署清单从顶层文件夹复制到版本化文件夹。保留一份副本总是好的,因此如果需要,您可以回溯一个版本。

现在您可以将文件复制到您的虚拟机,它们会正常工作。

在第二种情况下,如果您使用 HTTP 发布应用程序,则需要 Front Page Extensions,但在 Windows Server 2008(?) 之后它们不再可用。所以不要使用HTTP。使用 FTP。使用 FTP 设置发布文件位置,例如ftp://myserver.mycompany.com/myfolder并将安装 URL 设置为与其等效的 HTTP。然后发布它。它会将文件放在您的 VM 上(假设双方都启用了 FTP),并且 HTTP 链接应该可以工作。

顺便说一句,您还可以在 Azure Blob 存储中托管您的部署。它非常便宜,您可以使用 Cerebrata Cloud Storage Studio 之类的东西,甚至可以编写自己的代码来发布它(我这样做了)。本文解释了如何将文件放在那里,MIME 类型需要是什么等。如果你这样做,那么即使你需要替换你的 VM 或重新部署它,或者 VM 由于某种原因变得不可用,它也可以工作。

于 2013-09-06T18:49:21.550 回答
0

这是对 Avkash Chauhan 的博客文章的参考,详细解释了如何通过非常简单的步骤使用 Windows Azure 存储部署 ClickOnce 应用程序?

http://blogs.msdn.com/b/avkashchauhan/archive/2011/05/09/how-to-deploy-clickonce-application-using-windows-azure-storage-in-very-simple-steps.aspx

他还提供了一个 windows 窗体的代码示例(使用 Wpf),他展示了如何使用一键部署在 azure 上进行部署。

希望这可以帮助

于 2013-09-03T23:27:42.720 回答