2012-02-06 38 views
0

.resxの文字列に直接アクセスする方法はありますか?.resxファイルを読むVB.NET SharpDevelop?

私はいくつかの異なるプロジェクトを持っていて、.resxはSharpDevelopテンプレート "Misc >> Empty resource file"を使って作成されました。

のような、私はオンラインメソッドのほとんどを試した

、:

... = new ResourceManager ("ProjectEtc.resxFileName", 
      Assembly.GetExecutingAssembly) 

が、私は同じエラーが表示さ:どんなに私がやるように見える何

Could not find any resources appropriate for the specified culture or 
neutral culture. Make sure "ProjectEtc.resxFileName.resources" was 
correctly embedded or linked into assembly "Project calling" at compile time... 

を。

私は自分の.resxファイルも.resourceファイルに変換する必要があると思われます。

#developテンプレートを使用していくつかのステップで欠落していますか?

これは.NETで定数文字列を保存する最良の方法ですか?

おかげで、 デーンの.resxファイルがそのビルドアクションEmbeddedResourceからセットを持ってい

答えて

0

チェック。 SharpDevelopは空のリソースファイルテンプレートを使って新しいファイルを作成するときにデフォルトでそれを行うべきですが、チェックする価値があります。

これで、プロジェクトのルート名前空間とファイル拡張子のないresxファイル名をResourceManagerコンストラクタに渡す必要があります。

SharpDevelopでTestResourceという名前の新しいプロジェクトを作成した場合、私のルート名前空間はTestResourceになります。次に、プロジェクトにFoo.resxというリソースファイルを追加するとします。そして、「文字列MyString」という名前の文字列を追加し、その後、あなたは次のコードで対応する文字列値にアクセスすることができます:あなたはあなたのアプリケーションをコンパイルすると

Dim resourceManager As New ResourceManager("TestResource.Foo", Assembly.GetExecutingAssembly) 
Dim result = resourceManager.GetString("MyString") 

の.resxファイルを.resourcesファイルのファイルにコンパイルされ、プロジェクトに埋め込まれます。 ILSpyなどのツールを使用すると、この埋め込みリソースとそれが呼び出された内容を見ることができます。

通常、.resxファイルを使用する方法は、.NETで多言語アプリケーションを実行する方法であるため、文字列の格納に使用することはOKです。

+0

ILSpyを使用すると、実際にリソースファイルが表示されます。それは私のプロジェクトの中でResourcesというフォルダの中にあり、実際には "[Project namespace] .Name.resources"という名前を持っています。私はもう一度、最も単純なものから複雑なものまで、あらゆる種類の「パス名」を参照しようとしましたが、同じ古いメッセージ、「特定の文化や中立文化に適したリソースを見つけることができませんでした。すべてが埋め込まれています。私は頭を傷つけている。 – Danedo

+0

プロジェクト内のフォルダに.resxファイルがあると、埋め込まれたリソースファイルの名前に影響しないようです。 –

関連する問題