6

根据迄今为止给出的答案,更新这个问题已经发展并得到了扩展。

我想要两件事:(1)Visual Studio 作为我的 Orchard 开发环境和(2)GIT 作为我推送到 Azure 的手段。为此,我下载了 Orchard.Source 发行版而不是 Orchard.Web 发行版。

因此,我使用 GIT 将 Orchard.Source.1.5.1 发行版从本地计算机上的存储库发布到 Azure 网站(预览技术)。部署工作正常,但 Azure 上的后续构建失败,因为它无法确定应该构建哪个解决方案:

远程:无法确定要构建哪个解决方案文件。C:\DWASFiles\Sites\MySite\VirtualDirectory0\site\repository\src\Orchard.sln, C:\DWASFiles\Sites\MySite\VirtualDirectory0\site\repository\src\Orchard.Azure\Orchard.Azure.sln, C: \DWASFiles\Sites\MySite\VirtualDirectory0\site\repository\src\Orchard.Azure\Orchard.Azure.Web\Modules\Orchard.ContentTypes\Orchard.ContentTypes.sln, C:\DWASFiles\Sites\MySite\VirtualDirectory0\site\存储库\src\Orchard.Azure.Tests\Orchard.Azure.Tests.sln, C:\DWASFiles\Sites\MySite\VirtualDirectory0\site\repository\src\Orchard.Web\Modules\Orchard.ContentTypes\Orchard.ContentTypes.sln . 远程:错误 - 更改已提交到远程存储库,但您的网站未更新。

该转储中列出的第一个解决方案 Azure 就是它应该使用的解决方案。我如何告诉 Azure?

在 David Ebbo 的帮助下,我现在明白我问错了问题:

  1. 使用“.deployment”配置文件解决了问题,并且
  2. 指向“正确”的 Visual Stuio 解决方案是不正确的!要通过 GIT 部署到 Azure,我必须指向一个项目文件(在本例中为 Orchard.Web.csproj):

    [配置]
    项目 = src/Orchard.Web/Orchard.Web.csproj

这让我走得更远,但我的下一个问题是我故意从我的 GIT 存储库中省略了 Orchard.Source 的“lib”文件夹。我错误地认为,如果我为 Orchard.sln 启用“nuget restore”,Azure 中项目文件的构建将获取所需的依赖项。

在 Sebastien 的帮助下,我现在了解到启用 nuget 可能是一场艰苦的战斗,因为一些 Orchard 3rd 方依赖项已经由 Orchard 团队进行了源代码级别的自定义。简而言之,如果我想使用 Orchard.Source 发行版快速启动并运行 - 那么我只需将“lib”文件夹提交到我的 GIT 存储库中(该死!)。

当我通过 GIT 对 Azure 进行下一次推送时,我的编译仍然失败 - 但至少错误数量大大减少了。我认为它现在唯一不高兴的是:

For OrchardFramework.csproj:
   Could not find assemblies: Castle.Core, Casstle.DynamicProxy2
   Missing type or namespace: Castle, AbstractLoggerFactory, DefaultProxyBuilder

如果我能克服这个问题,我最终可能会两全其美:Visual Studio 开发环境(由于 Orchard.Source 发行版)和支持 GIT 的 Azure 推送。有人知道最后一个问题可能是什么吗?

ps Orchard.Source 发行版中有一个“ClickToBuildAzurePackage.cmd”文件,该文件是在创建“GIT 推送到 Azure”之前创建的。这个小批处理文件试图复制 GIT 推送到 Azure 现在提供的大部分工作。我可能会更多地探索该选项,但当然理想的情况是依赖新的 Azure 内置功能。

更新 2:事实证明,这仅仅是因为lib/*/Castle Windsor 2.0/bin/*.gitignore. 在强制输入这些文件之后,整个事情现在构建和部署!现在唯一的问题是该网站在我访问它时没有给出响应。如有必要,我将把它变成一个单独的问题。照原样,我认为这个特定问题得到了回答。

4

3 回答 3

6

您可以使用存储库根目录中的 .deployment 文件指定要部署的项目。有关更多信息,请参阅https://github.com/projectkudu/kudu/wiki/Customizing-deployments

此外,请参阅https://github.com/AzureWebSites/OrchardCMS以获取在 Azure 网站中运行的 Orchard 存储库示例(但它有点过时)。

于 2012-10-01T18:18:44.047 回答
5

Orchard 没有将 Nuget 用于其依赖项,这意味着这些库已签入源代码控制系统,如果按源代码部署,则需要它们。

大卫·海登 (David Hayden) 有一个关于使用 Git Publishing 在 Windows Azure 网站上安装 Orchard 的非常好的教程:http ://www.davidhayden.me/blog/git-publishing-orchard-cms-to-windows-azure

于 2012-10-02T16:39:00.293 回答
2

以下是我们的高级步骤和常见问题。

高级步骤

  1. 将 Orchard 源克隆到SomeDirectory
  2. 将 .deployment 文件添加到 SomeDirectory(例如,来自 PowerShell,ni –t f .deployment

检查点:SomeDirectory 现在将包含:

.git
.deployment 
lib 
src 
.gitignore 
build.cmd 
ClickToBuild.cmd 
ClickToBuildAzurePackage.cmd 
CREDITS.txt 
DeleteModuleBinaries.cmd 
LICENSE.txt 
Orchard.proj
  1. 接下来,在 SomeDirectory 中打开开发人员命令提示符。
  2. 运行build precompiled

检查点:SomeDirectory 现在将包含另外两个子目录:

build 
buildtasks
  1. 接下来,打开您的 .deployment 文件...

...并添加以下内容:

[config] 
project = build/precompiled
  1. 添加、提交和推送您的文件到 GitHub(或任何地方)。
  2. 创建一个新的 Windows Azure 网站。
  3. 从版本控制 > GitHub > 等中选择部署。
  4. 等待部署完成。
  5. 测试...

通过 FTP 查看您的 Azure 网站将显示以下内容:

ftp

通过浏览器查看您的站点将显示:

网络

常见问题

  1. 如果你有一个忽略 build/ 目录的 .gitignore 文件,你必须让 git 强制添加预编译文件夹中的所有内容(App_Data 和 Media 除外,因为它们将包含我们从 Orchard UI 添加的实时内容)。

例子:

git add –-f  bin/*
git add –-f Config/*
git add –-f Core/*
git add –-f Modules/*
git add –-f Themes/*
git add –-f CREDITS.txt
git add –-f Global.asax
git add –-f LICENSE.txt
git add –-f Refresh.html
git add –-f Web.config
(Yes. Git is case sensitive).
  1. 如果您在添加、删除、排除或包含新文件后忘记保存 .csproj 文件,则 Git Deploy 将抱怨找不到某些文件。
于 2014-11-13T20:28:42.730 回答