我们有一个 azure 的 Webrole,我们从其他应用程序调用它作为 API,将网页转换为渲染的字节数组,然后将其作为 pdf 附加到电子邮件中。我们使用 ABCpdf 来完成此操作。
对于我们最新的项目,我们必须使用 ABC (ABCGecko) 的第二个引擎才能正确渲染我们的页面。 ABCGecko 引擎需要在构建发生后手动复制到输出目录,它不会自动发生。
对于普通应用程序来说,这不是问题,我只需在构建后将所需的文件夹(对于使用 ABC 的任何人来说是 XULRunner_38)复制到版本中,但我不知道如何为 Azure WebRole 执行此操作,并且没有'从我在谷歌搜索中看到的内容来看,似乎没有什么太大的帮助。
我假设我要么必须构建角色,然后在部署之前调整包,要么部署角色,然后复制文件夹。但我不知道如何做到这一点。
如果有人有任何想法或过去需要手动将文件复制到 Azure Webrole,那么我将非常感谢您的帮助。另外我应该提到,我们使用 Visual Studio 作为我们的 IDE,并从其中发布,以防对任何人都重要。
最佳答案
Azure Web(和辅助)角色允许您定义启动任务,从而允许您调用脚本(例如 powershell 脚本、批处理文件),然后该脚本可以执行复制文件等操作。
哦,如果你不希望它在角色实例重新启动时尝试复制,你需要做一些事情,比如在某个地方给自己留下一个“面包屑”,以表明你已经完成了初始化工作.
您不想做的是将内容手动复制到您的角色实例。当这些实例更新(例如新的主机操作系统更新)或将它们移动到另一个物理主机时,您将丢失手动复制的任何文件。
这完全独立于任何 IDE(除了对您正在编写的脚本语言的一般支持之外),因为您的启动任务将在每个 Web 角色实例启动时执行。
有关启动任务的更多详细信息是 here .
关于c# - 将文件复制到 Azure WebRole 上的输出目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46341172/