使用发布配置文件如何跳过文件夹,然后重新包含子文件夹

时间:2018-08-03 14:33:42

标签: visual-studio publish-profiles

我试图研究一种使用Visual Studio发布配置文件跳过文件夹,然后重新包含跳过的文件夹的子文件夹的方法。

例如,我具有以下结构

  • App_Themes
    • 主题A
    • 主题B
    • 主题C
    • ...
    • 主题Z

我想跳过App_Themes下的所有文件夹,然后重新添加文件夹“ Theme A”。

下面是App_Themes的跳过规则,该规则可以正常工作。

<PropertyGroup>
    <OnBeforePackageUsingManifest>
        $(OnBeforePackageUsingManifest);
        AddSpecificSkipRule;
    </OnBeforePackageUsingManifest>
    <AfterAddIisSettingAndFileContentsToSourceManifest>
        $(AfterAddIisSettingAndFileContentsToSourceManifest);
        AddSpecificSkipRule;
    </AfterAddIisSettingAndFileContentsToSourceManifest>
</PropertyGroup>

<Target Name="AddSpecificSkipRule">
    <ItemGroup>
        <MsDeploySkipRules Include="SkipAppThemes">
            <ObjectName>dirPath</ObjectName>
            <AbsolutePath>App_Themes</AbsolutePath>
        </MsDeploySkipRules>
    </ItemGroup>
</Target>

此后,我不确定是如何重新包含一个主题文件夹,即App_Themes \ ThemeA。我尝试使用以下内容,但到目前为止还没有运气。

<PropertyGroup>
    <CopyAllFilesToSingleFolderForPackageDependsOn>
        AddWebsiteTheme;
        $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForPackageDependsOn>
    <CopyAllFilesToSingleFolderForMsdeployDependsOn>
        AddWebsiteTheme;
        $(CopyAllFilesToSingleFolderForPackageDependsOn);
    </CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>

<Target Name="AddWebsiteTheme">
    <ItemGroup>
        <_CustomFiles Include="App_Themes\Theme A\**\*" />
        <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
            <DestinationRelativePath>App_Themes\Theme A\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
        </FilesForPackagingFromProject>
    </ItemGroup>
</Target>

任何帮助将不胜感激。

0 个答案:

没有答案