Umbraco表单部署流程
我使用的是Umbraco表单,不希望开发环境中包含的表单包含在生产环境中;但是,我希望它们包含在源代码管理中 因此,根据标准,我当前的设置包括源代码管理下的文件;但是,为了排除表单数据(App_Plugins/UmbracoForms/data),我从项目(.CSPROJ)中排除了该文件夹。问题是,在发布(到文件)之后,数据文件始终被包括在内,即使它们被排除在外Umbraco表单部署流程,umbraco,umbraco-contour,Umbraco,Umbraco Contour,我使用的是Umbraco表单,不希望开发环境中包含的表单包含在生产环境中;但是,我希望它们包含在源代码管理中 因此,根据标准,我当前的设置包括源代码管理下的文件;但是,为了排除表单数据(App_Plugins/UmbracoForms/data),我从项目(.CSPROJ)中排除了该文件夹。问题是,在发布(到文件)之后,数据文件始终被包括在内,即使它们被排除在外 在生成过程中是否有其他事情正在将这些文件复制到发布目录?这在某种程度上取决于您是如何进行发布的。如果您只是通过visual studi
在生成过程中是否有其他事情正在将这些文件复制到发布目录?这在某种程度上取决于您是如何进行发布的。如果您只是通过visual studio发布,则可以向csproj的属性组添加一些参数
<ExcludeFoldersFromDeployment>App_Plugins\UmbracoForms\Data</ExcludeFoldersFromDeployment>
这个发布应用程序插件的版本实际上是由NuGet的UmbracoCms包配置的。它允许您发布包括Umbraco在内的项目。但它也增加了额外的文件夹。在项目上安装Umbraco时,它会将2
Import
添加到.csproj文件中
<Import Project="..\packages\UmbracoCms.{version_number}\build\UmbracoCms.props" Condition="Exists('..\packages\UmbracoCms.{version_number}\build\UmbracoCms.props')" />
<Import Project="..\packages\UmbracoCms.{version_number}\build\UmbracoCms.targets" Condition="Exists('..\packages\UmbracoCms.{version_number}\build\UmbracoCms.targets')" />
排除这些文件并不重要,因为上面一行的原因,它将始终添加这些文件
如何解决此问题?
我们无法更改此UmbracoCms.targets
文件,因此我们必须采取其他选项,因为我们不想更改Umbraco指定这些文件的方式
我们所能做的就是像翁布拉科那样做。
添加一个新目标、一个项目组并添加元素ExcludeFromPackageFolders
,指定Include
属性并用值填充
<Target Name="ExcludeUmbracoFormsData">
<ItemGroup>
<ExcludeFromPackageFolders Include="App_Plugins\UmbracoForms\Data">
</ExcludeFromPackageFolders>
</ItemGroup>
</Target>
备选方案
- 如果您使用的是UmbracoForms 4.4+,则可以为表单定义不同类型的存储:
<CustomFilesToInclude Include=".\App_Plugins\**\*">
<Dir>App_Plugins</Dir>
</CustomFilesToInclude>
<Target Name="ExcludeUmbracoFormsData">
<ItemGroup>
<ExcludeFromPackageFolders Include="App_Plugins\UmbracoForms\Data">
</ExcludeFromPackageFolders>
</ItemGroup>
</Target>
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
ExcludeUmbracoFormsData;
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>