2012-02-13 28 views
0

.NET 4.0のWeb上で無料のプログラムが見つかりましたが、VS2008をコンパイルするコードをコピーする必要がありました。私は文化の扱い方が.NETのバージョンで異なっていなければならないと考えています。 私はこのエラーを取得しています:.NET 4.0から3.0は指定されたカルチャまたはニュートラルカルチャに適切なリソースを見つけることができませんでした。

System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "A.B.C.Resources.ExceptionMessage.resources" was correctly embedded or linked into assembly "A.B.C.csproj" at compile time, or that all the satellite assemblies required are loadable and fully signed.

それは、C#の.dllファイル(クラスライブラリ)だ、と私はコンソールプログラムからそれを呼んでいます。 強力なキーファイルが割り当てられています。

このような任意のステートメントで、最大吹いています:

return ResourceManager.GetString("XYZ"); 

すべてのリソースは英語であり、そしてそれは私が必要とする唯一の言語だように見えます。 私は例外を回避する方法を探しています。

+0

元のプロジェクトからもリソースをコピーしましたか? – svick

+0

プロジェクトソリューションが不完全なようです。これは、あなたの結論が間違っているため、ResourceManagerクラスが変更されていないため、.NET 4.0/3.0とは関係ありません。たとえそれがあっても...それはまだサポートされるでしょう。 –

+0

はい、私はリソースファイルをコピーし、今AssemblyInfo.csファイルを同期しました。何が不完全かもしれないかについてのヒント? – NealWalters

答えて

2

ファイルをコピーして新しいVS2008プロジェクトを再構築したとき、Visual Studioのソリューションエクスプローラでリソースファイルの階層関係はありませんでした。たとえば、ExceptionMessage.resxとExceptionMessage.Designer.csは同じレベルにあります。通常Designer.csファイルは.resxファイルの下にインデントされます。何が起こったのか分かりません。

私がしたことは、新しい.resxファイルを作成し、メモ帳とファイルマージプログラム、.resxファイルと.csファイルの一部を使って慎重にコピーすることでした。それはうまくいった。

私はまだ問題が何であるか絶対に確信していませんが、私はこれを修正したことを知っています。今日この問題について約5時間失った。

0

アセンブリ内の[assembly: AssemblyCulture("")]のプロパティを、バージョン4とバージョン3の両方のソリューションから比較する価値があります。

デフォルトは - 私は考える - なしです。

MSDN documentation

Putting this attribute on an assembly and using something other than the empty string ("") for the culture name will make this assembly look like a satellite assembly, [...]

おそらく、あなたは明示的に定義する必要があるか、すでに定義されていますが、すべきではありませんか?

+0

4.0と私の両方のバージョンにはCultureがありませんでした。あなたが掲示したMDSNページから、リソースだけを含むアセンブリと実行可能なコードがない場合、AssemblyCultureを使用するように見えます。まだ私の側には運がない。 – NealWalters

0

私はこの困難を抱えており、原因がプロジェクトプロパティからのアセンブリ名とデフォルト名前空間と関係していることがわかりました。それらを両方とも同じものにするか、またはそのようなものにするのに役立ちます。

関連する問題