22

VS2008 でソリューションを構築する際に問題が発生しています。通常、環境では問題なくコンパイルされます。場合によっては、次のエラーで失敗します。

/xxx_WEB/secure/CMSManagedTargetPage.aspx(1): error ASPPARSE: Circular
file references are not allowed.

私は再構築し、それは正常に動作します。

ただし、現在、CruiseControl.NET システムをセットアップしている最中で、ビルドを CC に統合する前に、チェックアウトしたコードを MSBuild でテストしています。これで、MSBuild を実行するたびに次のようになります。

"Q:\cc\xxx\checked out from svn\xxx.sln" (default target) (1) ->
(xxx_WEB target) ->
  /xxx_WEB/secure/CMSManagedTargetPage.aspx(1): error ASPPARSE: Circular
file references are not allowed.

問題は、この参照がどこにあるのかわからないことです。

  • ソリューション全体で参照を検索しましたが、ページまたはそのコードビハインド、または文字列内以外の場所にページ自体 (CMSManagedTargetPage) への参照を見つけることができません。

    C:\dev2008\xxx\IWW.xxx.ASPNET\AspxHttpHandler.cs(82): inputFile = context.Server.MapPath("~/secure/CMSManagedTargetPage.aspx"); C:\dev2008\xxx\IWW.xxx.ASPNET\AspxHttpHandler.cs(83): virtualPath = "~/secure/CMSManagedTargetPage.aspx";

私のアセンブリ参照も問題ありません(私の知る限り)。私の Web アプリケーションは依存関係の「最上位」にあり、それを参照するものは何もないため、障害のあるページが循環参照を引き起こすことはありません。もちろん、ページ自体が同じアセンブリ/Web サイト内の UserControl などを参照している可能性がありますが、前述のように、CMSManagedTargetPage を検索しても結果が得られなかったため、これは発生していません。

web.config でバッチ属性を変更しても、MSBuild には影響しませんでした。

VSで「時々」失敗し、MSBuildで常に失敗するのは非常に奇妙です。微妙なところがありませんか?

4

16 に答える 16

15

転載元:

http://ellisweb.net/2009/12/fixing-the-circular-file-references-are-not-allowed-error-in-asp-net/

次の設定がある場合: /folder1/Control1.ascx > References Control2 /folder2/Control2.ascx > References Control3 /folder1/Control3.ascx これは、folder1 dll が folder2 dll を参照し、それが再び folder1 dll を参照することを意味します。 「循環ファイル参照」を引き起こします。


これは今日私を助けました。ルート内の別のページを参照するフォルダー内のマスター ページを参照するルート内のマスター ページがありました。どのページがどのフォルダーにあるかをシャッフルするのは魅力的でした。

于 2011-02-14T11:04:29.610 に答える
9

同じ問題に遭遇したとき、私はあなたの投稿に出くわしました。循環参照の問題にはおそらく無数の解決策がありますが、私のものはマスター ページの直接の結果でした。

ネストされたフォルダーの外で、ネストされたマスターページを使用して誤ってページを作成してしまいました。例:

Master1.Master
Page.aspx
(Folder1) 
Master2.Master

Page.aspx が Master2.Master をマスターページとして参照している間、正常にビルドされ、「公開」するとエラーが発生しました。

于 2009-06-05T22:50:53.777 に答える
8

また、この問題が発生し、[固定の名前付けと単一ページのアセンブリを使用する]を選択することで、VisualStudio内から公開を成功させることができました。何らかの理由で、循環参照があると考える編集者を避けているようです。

于 2010-04-13T20:27:22.323 に答える
6

同様の問題があり、@JBicfordの回答から密接な手がかりを得ました。別のフォルダーで Master.master を使用して、Web サイトのルートで Default.aspx を使用していました。それが原因であるかどうかはわかりませんが、このソリューションはまだテストしていません。

しかし、公開の問題を整理することに興味がある人にとっては、以下のオプションは VS 2012 で機能しますが、他のフォルダーやページへの依存関係が正しくないため、他のすべてのオプションは失敗します。

ここに画像の説明を入力

于 2013-03-19T13:27:45.323 に答える
4

Visual Studio のバッチ コンパイル ページで、このエラーが発生することがわかりました。web.config のコンパイル要素に batch="false" を設定することで、この問題を修正できました。

具体的には、問題のあるページがあるディレクトリに web.config を追加しました。その web.config ファイルには、次のコンテンツのみが含まれています。

<?xml version="1.0"?>

<configuration>
  <system.web>
    <!-- Added to prevent error ASPPARSE: Circular file references are not allowed. -->
    <compilation batch="false" />
  </system.web>
</configuration>

そうすれば、Visual Studio/MSBuild は、必要に応じて、影響を受けない他のディレクトリをバッチ コンパイルできます。

コンパイル要素とバッチ属性の詳細については、 msdn を参照してください

于 2011-01-03T22:18:46.000 に答える
3

私にとっては、マスターページにもaspxページを登録していました。

例(マスターページ内):

<%@ Register Assembly="MyPage" Namespace="MyPage" TagPrefix="MyPage" %>
...
<asp:ContentPlaceHolder id="MyPage" runat="server"></asp:ContentPlaceHolder>

そして、aspxページで:

<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" 
    CodeFile="MyPage.aspx.cs" Inherits="MyPage" Title="Untitled Page" %>
<asp:Content ID="SomeContent" ContentPlaceHolderID="MyPage" Runat="Server">

レジスターを削除すると修正されました。

于 2009-09-22T13:55:11.070 に答える
2

このバグは、ASP.NET 4.0 にも存在します。

私が得たエラーは次のとおりです。

/DirA/PageA.aspx(3): error ASPPARSE: Circular file references are not allowed.
/DirA/PageA.aspx(71): error ASPPARSE: Unknown server tag 'Controls:ControlA'.

ControlA は、PageA.aspx(3) で参照されているものと同じコントロールでした。このエラーを停止するには、ControlA を PageA と同じディレクトリに移動する必要があることがわかりました。

于 2010-08-27T05:20:38.590 に答える
2

私が好きな人は、この問題をぐるぐる回っています。他のすべてが失敗するという別の解決策があるかもしれないと私は信じています。MVC アプリケーションでこの問題が発生し、数週間かけてさまざまな提案を試みましたが、役に立ちませんでした。

私たちが見つけたのは、マカフィー ウイルス スキャナー V 8.0 を実行しているということでした。VirusScan コンソールからオンアクセス スキャナーを無効にすると、問題なくビルドおよびデバッグできることがわかりました。

唯一のことは、この設定を無効にすると、15 分ごとに自動的に再有効化されることです。

これは共有する価値があると感じました..

ありがとう、ディーン

編集:これは、マシンへのローカル管理者アクセス権がある場合にのみ機能します。セキュリティの観点からは、AV スキャナーをオフにすることには正当な懸念があります (当然のことです)。実際、ネット管理者によって制御されている作業環境にいる場合、彼らからプッシュバックを受けることさえあります. これを行う別の方法があると確信していますが、今のところこれでうまくいくようですが、別の回避策 (ネット管理者に優しい) が見つかった場合は、ここで共有します。

于 2014-10-20T13:27:59.653 に答える
1

マスター ページ内に含まれるユーザー コントロール (ASCX) がある場合、この動作が発生します。

通常、エラーは 2 番目のビルド後に消えるため、単純に無視します。

于 2010-06-30T05:49:22.010 に答える
0

私にとって、これらのトリックはうまくいきませんでした

-設定 batch=true -asp.net 一時ファイルの削除と IIS のリセット -疑わしい ascx ファイルの置換

問題は、最近追加されたプロジェクトを私のソリューションに参照し、最終ビルド後にアンロードすることでした。この新しく追加されたライブラリへの参照を削除すると、問題が解決しました

于 2011-07-24T08:11:17.740 に答える
0

大規模な開発のオーバーホール中に、これと同じエラーが発生しました。私の特定のケースでは、これは、未使用または名前が変更されたファイルをドラッグアンドドロップしていた「JUNK」フォルダーを使用していたためです。ジャンク フォルダがコンパイルされていて、最近削除したファイルがこの問題を引き起こしていました。

ジャンク フォルダー内の個々のファイルを除外することで、これを修正しました。

于 2011-11-21T14:41:57.650 に答える