2

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

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

那么有没有更好的方法呢?

4

1 回答 1

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/

于 2013-06-21T10:26:34.000 回答