4

Mercurial(Tortoise HG BTWを使用)でバージョン管理されているWebプロジェクト(実際にはOrchard CMSサイトですが、これは重要ではありません)のC#ソリューションがあります。このソリューションには、別々のリポジトリにある(そしてソリューションリポジトリ)。Hgファイルがソリューションのどこにも含まれることはなく、VisualStudioには表示されません。

Webプロジェクトのプロパティで[アプリケーションの実行に必要なファイルのみ]オプションを選択してソリューションを公開(または展開パッケージをビルド)しようとすると、ビルドされたパッケージにサブリポジトリのhgファイル(.hgフォルダー全体など)が含まれます。

これはほとんど無害ですが(大量の不要なファイルを公開する以外に)、次のメッセージで公開が完全に失敗する可能性もあります。

ファイルSubRepoFolder.hg\store\data_libraries_parallel_extensions_extras_coordination_data_structures_async_coordination_async_reader_writer.cs.iをobj\Release \ Package \ PackageTmp \ SubRepoFolder.hg \ store \data_libraries_parallel_extensions_parallel_extensions_parallel_extensions_ 指定されたパス、ファイル名、またはその両方が長すぎます。完全修飾ファイル名は260文字未満である必要があり、ディレクトリ名は248文字未満である必要があります。

次に何をすべきか、VSがおそらく表示されないファイルをビルドしないようにする方法がわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

2

これが果樹園の解決策であるという事実は重要な事実であることがわかりました!

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の後の「*」に注意してください。はい、これには約3時間かかりました。これに到達するために、見つけたすべてのビルド構成オプションを確認しました。

現在、これは.hgフォルダーのみを除外し、.hgファイル(.hgignoreや.htagsなど)は除外しませんが、私は気にしません。これらは、多数のファイルを含む.hgフォルダーとは対照的に無害です。

このブログ投稿は私を助けてくれました。

于 2012-08-14T11:35:05.757 に答える