我试图研究一种使用Visual Studio发布配置文件跳过文件夹,然后重新包含跳过的文件夹的子文件夹的方法。
例如,我具有以下结构
我想跳过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>
任何帮助将不胜感激。