2

少し奇妙な状況があります。

私の顧客の 1 人は、専用サーバー上に Asp.net (フレームワークの v2) サイトを持っています。

彼らは、開発者が去ったので、コードにいくつかの変更を加えるように私に依頼しました。どうやら最新バージョンがサーバー上にあったようです。

そのコードをダウンロードし、VS2010 で開き、変換したところ問題ありませんでした。ただし、コードを実行すると、コードに存在しないプロパティを呼び出している aspx ページからコンパイル時エラーが発生します。(Find In Files、ソリューション全体によると、. )

それで、私はいくつかの掘り出し物をしました。Bin ファイルには、Web サイトのアセンブリがあります。サーバーでは、これは 300k を超えています。私のマシンでは、これは 180k です。

これは単純に、最近のコンパイラがコードをより適切にパックしているということかもしれませんが、これが 120k の改善として示されるとしたら、私は驚かれることでしょう。

したがって、私が考えることができる唯一のことは、ある時点で彼がいくつかの変更を加えて Web サイトをコンパイルしたが、最初にすべての古い .cs ファイルを削除しなかったということです。

これは可能ですか、または誰かが私が目撃している行動を見ている別の理由を提案できますか?

[編集]

わかりました、プリコンパイルされていないので、今何が起こっているのかを理解するのに本当に苦労しています。

  • 私はウェブサイトからすべてのコードを持っています。
  • サーバー上でコードが機能します。

ただし、元の質問に回答していただいたので、これを閉じます。また、明日また戻ってきて、もう少し深く掘り下げてください。

ありがとう

4

3 に答える 3

2

最も簡単な方法は、aspxページを見ることです。

  • ディレクティブでAssembly=指定されている場合、@Page
  • または、ページのサイズが 1 KB で、「プレースホルダー」テキストが含まれている

次に、プリコンパイルされます。

最初のケースでは、それは「部分的にコンパイルされた」ものです (これは「更新可能」に相当します。つまり、いくつかのものを変更することができます)。後者の場合、「完全にコンパイル」されています。

また、おそらく最も注目に値するのは、コード ファイル (*.vb、*.cs など) がないことです。これは、コンパイルのモードに関係なく (コンパイルされている場合)、バイナリにコンパイルされるためですソース ファイルがすべて揃っている場合は、コンパイルされていないソリューション、または非常に奇妙なプロジェクト セットアップを使用している可能性があります。

于 2012-04-11T15:28:31.967 に答える
-1

あなたの代わりに、ILSpy などのアセンブリ ブラウザーでアセンブリを検査します。次に、そこに何があり、それがコード ファイルと異なるかどうかを確認できます。

于 2012-04-11T15:27:52.147 に答える