【问题标题】:How to include the umbraco_client folder when publishing with Web Deploy?使用 Web Deploy 发布时如何包含 umbraco_client 文件夹?
【发布时间】:2013-06-21 10:26:34
【问题描述】:

将 Umbraco 作为 NuGet 包安装时,只有 umbraco 文件夹包含在 Visual Studio 项目中,而不是 umbraco_client 文件夹。原因是不应从 Visual Studio 引用 umbraco_client 文件夹的内容。但是当使用 Web Deploy 发布网站时,我需要部署 umbraco_client 文件夹。

一种解决方案是将 umbraco_client 文件夹包含到 VS 项目中。这个解决方案的缺点是通过 NuGet 升级 Umbraco 很烦人并且容易出错。您必须记住将 umbraco_client 文件夹排除并重新包含到项目中。

那么有更好的方法吗?

【问题讨论】:

    标签: msbuild umbraco webdeploy


    【解决方案1】:

    您可以将以下 MSBuild 脚本添加到 .csproj 文件中。

    <Project>
    ...
       <PropertyGroup>
        <CopyAllFilesToSingleFolderForPackageDependsOn>
                            CustomCollectFiles;
                            $(CopyAllFilesToSingleFolderForPackageDependsOn);
                    </CopyAllFilesToSingleFolderForPackageDependsOn>
      </PropertyGroup>
      <Target Name="CustomCollectFiles"]]>
        <ItemGroup>
          <_umbraco_client_files Include="umbraco_client\**\*" />
          <FilesForPackagingFromProject Include="%(_umbraco_client_files.Identity)"]]>
            <DestinationRelativePath>umbraco_client\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
          </FilesForPackagingFromProject>
    
        </ItemGroup>
        </Target>
    
    </Project>
    

    如果您想自动将上述代码添加到所有新的 Umbraco 项目中,您可以创建自己的 NuGet 包。首先将 Umbraco 作为依赖项。然后添加一个 Build 文件夹,然后添加一个 .targets 文件。在 .targets 文件中添加上述代码。

    有关 MSBuild 脚本的详细信息,请参阅这篇文章:http://blog.samstephens.co.nz/2010-10-18/msbuild-including-extra-files-multiple-builds/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      相关资源
      最近更新 更多