3

私はグローバリゼーションに関していくつかの問題を抱えています。ASP.NET 2.0 の非常に古いプロジェクトを継承しました。複数の言語用のいくつかのグローバリゼーション ファイルがあります。

ただし、展開用にアプリケーションをビルドすると、テスト環境で問題なく動作します。しかし、アプリケーションを本番環境にコピーすると、<%$ Resources: Global, MyStringHere %> でエラーが発生します。

MyStringHere がリソース ファイルに見つからなかったことを示します。

なぜこれは開発環境とテスト環境では問題なく動作するのに、本番環境ではうまくいかないのでしょうか? ファイルは、ある環境から次の環境までまったく同じです (ただし、inetpub ファイルは各マシンの異なるディレクトリにあります)。

誰にもアイデアはありますか?

編集:

非常に奇妙な。コードビハインドからリソースを呼び出す場合。

public string _MyStringName = Resources.Global.MyStringHere;

これは、すべての環境で正常に機能します。

しかし、古いものを使用して:

<%$Resources: Global, MyStringHere %>

本番環境でのみエラーが発生しています。

4

2 に答える 2

0

App_GlobalResources からの .resx ファイルが展開サイトにコピーされていることは確かですか? App_GlobalResources ファイルは通常、Build Action = Embedded Resources ではなく、Build Action = Content で使用されることになっています。

開発マシンでは、ファイルが物理的に App_GlobalResources に配置され、埋め込まれているため、埋め込みリソースの設定が機能します。埋め込まれたリソースは無視されます。これにより、ビルド アクションが適切に構成されているという誤った印象を与える可能性があります。

于 2012-03-05T23:58:46.477 に答える
0

ここでは暗闇の中でのショットですが、環境またはマシン名に基づいて構成されたキーはありますか? 私たちは多くのプロジェクトでこれを行っています。一部のプロジェクトは、特定の理由により特定の環境でのみ実行されます。もう 1 つの推測は、コードをスキップしている可能性のある #if(DEBUG) があるかどうかを確認することです。

于 2012-03-05T23:26:03.690 に答える