14

ASP.Net プロジェクトでかなり長い間発生している断続的なエラーを追跡するために、いくつかの助けを借りることができます。

ソリューションのビルド時に断続的に、"/: ビルド (web): オブジェクト参照がオブジェクトのインスタンスに設定されていません" というエラーでビルドが失敗します。エラーには、関連するファイル、行、列、またはプロジェクト情報がありません。このエラーの奇妙な点は、再構築を繰り返すとエラーが解消され、ビルドが成功すると実行時エラーが発生しないように見えることです。エラーが 1 回だけ表示される場合もあれば、3 ~ 4 回表示される場合もありますが、最終的にはビルドが正常に終了し、毎回正常にビルドされているように見えます。なぜ、いつエラーが発生するのか、パターンを突き止めることはできませんでした。エラーは常に最終的にビルドされるため、私たちにとって重大な問題ではありませんでした。ただの迷惑です。しかし、明らかな理由で私が欲しいのは1つです。

これはもともと ASP.net 1.1 で開発され、2.0 に変換されたアプリケーションであり、その後どこかで継承したため、問題が最初にいつ表面化したかはわかりません。ここにいる全員に関する限り、それは常にそこにありました。

明らかに、誰かが私の問題の原因を特定することを期待していません。潜在的な問題を特定するために、ソリューション全体を検討する必要があるからです。コード内のエラーの実際の原因を追跡する方法について、誰かが私にいくつかの新鮮なアイデアを提供してくれることを願っています. どこかから来ているはずですよね?どこを調べたらどうなるの?

4

11 に答える 11

6

無効な HTML があるページに Web コントロールがある場合に、これを見てきました。コードビハインドがコントロールで何かをしようとしている場合、それを見つけることができず、コンパイル時に Object Reference... エラーが発生します。私の経験では、実行時エラーは発生せず、ビルド時に問題のファイルが閉じられていれば、プロジェクトはビルドされます。HTH、グッドラック!

于 2008-10-16T18:12:33.190 に答える
6

コマンド ラインでこのコマンドを実行し、より詳細な情報が得られるかどうかを確認します。

%WINDIR%\Microsoft.NET\Framework\v3.5\msbuild.exe YourSolution.sln /v:n

于 2008-10-18T21:47:43.173 に答える
5

この問題を追跡するために、エラーの原因を追跡することはありませんでしたが、Visual Studio 2008 にアップグレードしてプロジェクトを Web アプリケーションに変換すると、エラーはなくなりました。

于 2009-05-06T22:52:10.833 に答える
4

私は長い間この問題を抱えていましたが、ついに私にとってうまくいく解決策を見つけました。私には意味がありません...しかし、web.configファイルを次のように変更すると、この断続的なビルドエラーが確実に解消されます:

<buildProviders>
    <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
    <!-- add this line below -->
    <remove extension=".rdlc"/> 
 </buildProviders>

この助けを願っています!

于 2011-02-04T09:19:56.327 に答える
3

私が最初に試みることは、コンパイラの冗長性を高めることです。これは、Visual Studioオプションで設定できます。たとえば、VS2005の場合は[ツール]->[オプション]->[プロジェクトとソリューション]-[ビルドと実行]->[MSBuildプロジェクトビルドの出力の詳細度]です。診断に設定すると、少なくとも例外が発生したときに何をしているかがわかります。

于 2008-10-20T12:47:45.853 に答える
3

これは、ビルド時に、プロジェクトにコンパイルエラー(つまり、オブジェクトにエラーがあった)を伴うカスタムデータソース(コレクションを返す独自のオブジェクト)が含まれていたときに発生しました。

データソースを追加しようとして、プロジェクトのルートにデータソースがない場合(たとえば、すべてのデータソースクラスをサブフォルダーに配置した場合)にも、このエラーが発生します。私が見つけた唯一の解決策は、プロジェクトのルートにデータソースを作成することでした。

正確ではありませんが、コンパイル時にデータソース/オブジェクトで問題が発生する可能性があることがいくつかあるようです。

于 2008-10-20T12:26:58.313 に答える
0

「オブジェクト参照がオブジェクトのインスタンスに設定されていません」は、コンパイル時エラーではなく、明らかに実行時エラーです。つまり、Visual Studio が何らかの原因で窒息しているということです。これは必ずしもコード内にあるとは限らないか、コード内の何かが間接的に原因となっているだけです。

次の質問: これは Visual Studio でのみ発生しますか? それとも、MSBuild または CSC を使用してビルドしたときに同じことが発生しますか?

于 2008-10-16T17:15:52.010 に答える
0

本当に奇妙なのは、それが実行時エラーであることです。コンパイル時にそれを見るべきではありません。ソリューションに添付されているビルド前またはビルド後の手順はありますか? 「ビルド」プロセスに含めている単体テストはありますか?

このエラーはどこに表示されますか?

于 2008-10-16T17:16:03.427 に答える
0

イベント ビューアーのアプリケーション ログを確認します。例外がスローされている場所がわかります。

于 2008-10-16T17:22:25.130 に答える
0

明確にするために、窒息しているのはコンパイラ自体ですか?コード内の #define および #if ディレクティブで奇妙なことをしていますか? たぶん、ある時点で何かが順不同で行われている...ちょっと考えただけ...

于 2008-10-16T17:31:36.360 に答える
0
  • 失敗する可能性のあるビルド後のイベントがあるかどうかを確認します。これらは、各プロジェクトのプロパティ ページにあります。

  • Build Solution の代わりに Rebuild Solution を使用してみてください。[ツール] > [カスタマイズ] から Rebuild Solution を追加する必要がある場合があります。Web アプリが Windows サービスをインストールまたは登録し、それらのサービスが開始されている場合、再構築はそのような種類の問題を解決します。

于 2008-10-16T17:42:49.257 に答える