2

私は他の誰かのコードを作り直しています。そこでは、そこにあるべきではない多くのコードへの道を備えたヘルパークラスがありました(データアクセス、ビジネスロジック、すべてがゆっくりとそこに押し込まれていました)。

関連するコードを適切な既存のクラスに移動し、適切なプロジェクトで別のまったく新しいヘルパークラスを作成しましたが、このクラスへのすべての参照が機能しません。

これが私のクラスの外観の簡単なビューです(名前が少し変更されています)。

namespace Company.Web.Application.Reporting 

{
    public class ReportHelper
    {
    here I have a bunch of methods
    }
}

これがどのように参照されているかです。

using Company.Web.Application.Reporting;

namespace Company.Web.Application.App.Reports
{
    public partial class PlansReports : PageBase
    {
        //This is the problem part
        private ReportHelper Helper = new ReportHelper(); 
        heaps of other code with no problems here...
    }
}

私の問題は、新しいヘルパーにアクセスしようとすると、どこでも次のエラーが発生することです。

タイプまたは名前空間の名前'ReportHelper'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

私の使用するステートメントはすべてそこにあり、関連する各プロジェクトに適切な参照がありますが、これはまだ続いています。この時点で私は完全に立ち往生しています。すべてのヘルパーメソッドが正しく機能することを確認できるように、この参照の問題を整理する必要があります。

どんな助けでも大歓迎です、

パット。

4

4 に答える 4

1

OK、私は問題を見つけました(実際には同僚がしました)

この元のHelperクラスは、メインプロジェクトのapp_codeフォルダーに含まれていました。これは、今学んだように、プロジェクト内の他のすべてのフォルダーとは異なる方法でコンパイルを処理します。ここにあるコードは、ビルド中ではなく、実行時にコンパイルされます。新しいクラスを作成したとき、コードラッシュを使用してクラスを新しいファイルに抽出し、同じ場所に保持したため、それらはapp_codeフォルダーにありました...その後、それらを「適切な」場所に移動しました。残念ながら、app_codeフォルダー内の以前のプレゼンスから継承された「コンテンツ」のビルドアクションがまだありました。そのため、新しいクラスファイルでは、ビルドアクションを「コンパイル」に変更しただけで、すべてが順調に進んでいます。

乾杯、

パット。

于 2010-08-05T21:03:51.690 に答える
0

ReportHelper別のプロジェクトまたはDLLにいますか?もしそうなら、このプロジェクト/ dllを参照として追加しましたか?([参照]の下のソリューションエクスプローラーで、project/dllがそこにあることを確認します。

于 2010-08-05T15:48:11.360 に答える
0

Company.Web.Application.Reportingタイプがわかるように構築しましたか?それは、依存関係が適切に設定されていることを確認するとともに、私の考えです。

于 2010-08-05T15:49:01.913 に答える
0

あなたは自分が何をしているのかを知っているようで、すべてが正しく見えるので、それは単純なものでなければなりません。dllにコンパイルされていないReportHelperの変更にアクセスしようとしていますか?リファレンスアセンブリを再構築してみます。そのアセンブリに変更を加えるたびに、アセンブリを再構築する必要があります。

また、プロジェクトに正しいアセンブリ(たとえば、デバッグとリリース)を追加していることを確認します。どのタイプでも構いませんが、新しい変更をDebug dllにコンパイルして、古いバージョンのReleasedllを追加し続ける必要はありません。

于 2010-08-05T16:44:26.510 に答える