2016-09-19 5 views
0

Мне нужно исключить из среды публикации папки media, umbraco и umbraco_client. Эти папки редко меняются, и я не хочу ждать каждый раз, пока они не будут скопированы во время публикации на FTP-сервере. Вот мой конфиг local.pubxml:исключая папки из публикации Visual Studio 2015

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <WebPublishMethod>FileSystem</WebPublishMethod> 
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> 
    <LastUsedPlatform>Any CPU</LastUsedPlatform> 
    <SiteUrlToLaunchAfterPublish /> 
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> 
    <ExcludeApp_Data>False</ExcludeApp_Data> 
    <publishUrl>My_path</publishUrl> 
    <DeleteExistingFiles>False</DeleteExistingFiles> 
    <ExcludeFoldersFromDeployment>media;umbraco;umbraco_client</ExcludeFoldersFromDeployment> 
    <MSDeployUseChecksum>true</MSDeployUseChecksum> 
    <AfterAddIisSettingAndFileContentsToSourceManifest>AddCustomSkipRules</AfterAddIisSettingAndFileContentsToSourceManifest> 
    </PropertyGroup> 
    <Target Name="AddCustomSkipRules"> 
    <Message Text="Adding Custom Skip Rules" /> 
    <ItemGroup> 
     <MsDeploySkipRules Include="SkipmediaFolder"> 
     <ObjectName>dirPath</ObjectName> 
     <AbsolutePath>$(_DestinationContentPath)\\media</AbsolutePath> 
     <XPath> 
     </XPath> 
     </MsDeploySkipRules> 
     <MsDeploySkipRules Include="SkipUmbracoFolder"> 
     <ObjectName>dirPath</ObjectName> 
     <AbsolutePath>$(_DestinationContentPath)\\umbraco</AbsolutePath> 
     <XPath> 
     </XPath> 
     </MsDeploySkipRules> 
     <MsDeploySkipRules Include="SkipUmbraco_clientConfig"> 
     <ObjectName>dirPath</ObjectName> 
     <AbsolutePath>$(_DestinationContentPath)\\umbraco_client</AbsolutePath> 
     <XPath> 
     </XPath> 
     </MsDeploySkipRules> 
    </ItemGroup> 
    </Target> 
</Project> 

После этого папка СМИ не публикуется, но Umbraco и umbraco_client папки по-прежнему продолжают копировать в процессе публикации. После этого я исключил папки проекта umbraco и umbraco_client из проекта, но это также не решает проблему. Есть идеи? :)

+0

Этот метод всегда работает для меня. Возможно, что-то пошло не так, когда вы изначально сделали это. Вы не можете удалить текущий профиль и начать снова? Иногда В.С. является темпераментным. –

ответ

1

я сделать эту работу после того, как некоторые проблемы, возможно, это поможет ваш случай:

1.- Двигайте MsDeploySkipRules в отдельном файле с именем yourprojectname.wpp.targets в той же папке, .csproj, с следующего содержания (вы должны поставить Filepath и dirPath для каждой папки с его маски):

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemGroup> 

     <MsDeploySkipRules Include="SkipmediaFolderFiles"> 
     <SkipAction></SkipAction> 
     <ObjectName>filePath</ObjectName> 
     <AbsolutePath>$(_DestinationContentPath)\\media\\.*</AbsolutePath> 
      <Apply>Destination</Apply> 
     <XPath></XPath> 
     </MsDeploySkipRules> 
     <MsDeploySkipRules Include="SkipmediaFolderChildFolders"> 
     <SkipAction></SkipAction> 
     <ObjectName>dirPath</ObjectName> 
     <AbsolutePath>$(_DestinationContentPath)\\media\\.*\\*</AbsolutePath> 
      <Apply>Destination</Apply> 
     <XPath></XPath> 
     </MsDeploySkipRules> 

     <MsDeploySkipRules Include="SkipUmbracoFolderFiles"> 
      <SkipAction></SkipAction> 
     <ObjectName>filePath</ObjectName> 
     <AbsolutePath>$(_DestinationContentPath)\\umbraco\\.*</AbsolutePath> 
      <Apply>Destination</Apply> 
     <XPath></XPath> 
     </MsDeploySkipRules> 
     <MsDeploySkipRules Include="SkipUmbracoFolderChildFolders"> 
      <SkipAction></SkipAction> 
     <ObjectName>dirPath</ObjectName> 
     <AbsolutePath>$(_DestinationContentPath)\\umbraco\\.*\\*</AbsolutePath> 
      <Apply>Destination</Apply> 
     <XPath></XPath> 
     </MsDeploySkipRules> 

     <MsDeploySkipRules Include="SkipUmbraco_clientFolderFiles"> 
      <SkipAction></SkipAction> 
     <ObjectName>filePath</ObjectName> 
     <AbsolutePath>$(_DestinationContentPath)\\umbraco_client\\.*</AbsolutePath> 
      <Apply>Destination</Apply> 
     <XPath></XPath> 
     </MsDeploySkipRules> 
     <MsDeploySkipRules Include="SkipUmbraco_clientFolderChildFolders"> 
      <SkipAction></SkipAction> 
     <ObjectName>dirPath</ObjectName> 
     <AbsolutePath>$(_DestinationContentPath)\\umbraco_client\\.*\\*</AbsolutePath> 
      <Apply>Destination</Apply> 
     <XPath></XPath> 
     </MsDeploySkipRules> 

     </ItemGroup> 

</Project> 

2.- После этого (ОЧЕНЬ ВАЖНО) сохранить файл, закрыть Visual Studio и откройте его снова. Многие люди терпят неудачу на этом этапе (они изменяют файл и пытаются развернуть снова, не закрывая VS, а затем они не ценят никаких изменений, и они ошибочно полагают, что это не работает).

3.- Попробуйте опубликовать снова.

Протестировано в Visual Studio 2015.

 Смежные вопросы

  • Нет связанных вопросов^_^