0

多くのファイルを含む Web サイトを含むソリューションがあります。

最近、新しい Web ページをサイトに追加する必要が生じました。新しいファイルを使用してソリューションを構築すると、すべてが機能します。Web 発行ウィザードを使用しようとすると、プロセスが中断します。

基本的には、次のようになります。

  • webproject に追加された新しいページ (例: myPage)
  • Visual Studio でローカルにビルドすると、すべて問題ありません。最終的なアセンブリには、コード ベースに含まれるすべてのクラスがあります。
  • Web サイトをファイル システムに公開 (右クリックして CSProject から公開) すると、プリコンパイルで、クラス "myPage" が見つからないというエラーがスローされます。

通常の 3 つの場所で Dll のバージョン (myWebSite.dll など) を確認しました。

  • \bin -> 「MyPage」クラスを含むコンパイル済みコードが完成
  • \obj\Debug\Package\PackageTmp\bin -> コンパイルされたコードは完全ではありません。「MyPage」クラスを含む新しいクラスがありません
  • \obj\Debug\AspnetCompileMerge\Source\bin -> コンパイルされたコードは完全ではありません。「MyPage」クラスを含む新しいクラスがありません
4

1 に答える 1

0

ソリューションは、循環参照を使用して次のように設計されています。

MySolution
    Project A
    Project B
    Project C
    ...

プロジェクト Aは、プロジェクト A からのアセンブリ出力を参照するプロジェクト B を参照します。

ローカルでビルドすると、A から生成されたアセンブリが ProjectA.dll であり、再生成されたため、すべてが機能しました。Visual Studio (TFS のビルドおよびパブリッシュ機能ではなく、Web パブリッシング) 内から「パブリッシュ」を使用すると、参照が台無しになり、結果の Dll の一部が欠落しているように見えます。

この問題は、参照されている循環アセンブリが最新のものではなく、古いものであったために発生します。

于 2016-07-01T09:22:54.567 に答える