gpt4 book ai didi

visual-studio - Visual Studio 发布(部署)包包含 Mercurial (hg) 文件(Orchard)

转载 作者:行者123 更新时间:2023-12-03 16:20:25 24 4
gpt4 key购买 nike

我有一个 Web 项目的 C# 解决方案(实际上它是一个 Orchard CMS 站点,但这并不重要)它的版本受 Mercurial(使用 Tortoise HG BTW)的控制,它有一些位于单独存储库中的项目(并且是解决方案存储库)。 Hg 文件永远不会包含在解决方案中的任何地方,它们在 Visual Studio 中没有显示。

当我尝试使用在 Web 项目属性下选择的“仅运行应用程序所需的文件”选项发布解决方案(或构建部署包)时,构建的包包含子存储库的 hg 文件(如整个 .hg 文件夹) .

这基本上是无害的(除了发布一堆不必要的文件),但发布也可能完全失败并显示以下消息:

Error Copying file SubRepoFolder.hg\store\data_libraries_parallel_extensions_extras_coordination_data_structures_async_coordination_async_reader_writer.cs.i to obj\Release\Package\PackageTmp\SubRepoFolder.hg\store\data_libraries_parallel_extensions_extras_coordination_data_structures_async_coordination_async_reader_writer.cs.i failed. The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.



我不知道接下来要做什么,如何防止 VS 构建它应该看不到的文件。任何帮助将不胜感激。

最佳答案

事实证明,这是一个 Orchard 解决方案是一个重要的事实!

Orchard.Web.csproj 中有这样一行:

<Target Name="CustomCollectFiles">
<ItemGroup>
...
<_CustomFiles Include="Media\**\*;App_Data\**\*;Modules\**\*;Themes\**\*;Core\**\*" Exclude="**\obj\**;@(Orchard-Web-Bins -> '**\%(Filename)%(Extension)');**\*.csproj.user;**\*.hg*" />

它用于将文件从 Orchard 特定文件夹复制到构建包。请注意,它应该排除 Mercurial 文件和文件夹,但事实并非如此。我把这条线改成这样:
<_CustomFiles Include="Media\**\*;App_Data\**\*;Modules\**\*;Themes\**\*;Core\**\*" Exclude="**\obj\**;@(Orchard-Web-Bins -> '**\%(Filename)%(Extension)');**\*.csproj.user;**\.hg\**" />

请注意 .hg 后的“*”。是的,这花了我大约三个小时,遍历我能找到的每个构建配置选项以达到这一点。

现在这只排除 .hg 文件夹,但不排除 .hg 文件(如 .hgignore 或 .htags),但我不在乎:与包含一堆文件的 .hg 文件夹相反,这些是无害的。

This blogpost帮助过我。

关于visual-studio - Visual Studio 发布(部署)包包含 Mercurial (hg) 文件(Orchard),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11939235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com