2013-06-21 52 views
2

將Umbraco作爲NuGet包安裝時,只有umbraco文件夾包含在Visual Studio項目中,但不包含umbraco_client文件夾。原因是umbraco_client文件夾的內容不應該從Visual Studio中引用。但是,當使用Web Deploy發佈網站時,我需要部署umbraco_client文件夾。如何在使用Web Deploy進行發佈時包含umbraco_client文件夾?

一個解決方案是將umbraco_client文件夾包含到VS項目中。這個解決方案的缺點是通過NuGet升級Umbraco變得煩人而且容易出錯。你必須記住排除並重新包含umbraco_client文件夾到項目中。

那麼有沒有更好的方法?

回答

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/

相關問題