私はC#にリソースを埋め込むのに慣れています。私は埋め込みリソースに名前空間を自動的に追加する方法が好きです。それは私がこのようなことを行うことができます:埋め込みVB.NETリソースへのパスに基づいて名前空間を自動的に追加
files\version1\config.xml
files\version2\config.xml
files\version2\config.xml
あなたはVB.NETのプロジェクトで同じことをしようとした場合、それは、ルート名前空間にすべての埋め込みリソースを置くしようとするので、残念ながら、あなたは、コンパイルエラーを取得します。
<EmbeddedResource Include="files\version1\config.xml">
<LogicalName>$(RootNamespace).files.version1.config.xml</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="files\version2\config.xml">
<LogicalName>$(RootNamespace).files.version2.config.xml</LogicalName>
</EmbeddedResource>
<EmbeddedResource Include="files\version3\config.xml">
<LogicalName>$(RootNamespace).files.version3.config.xml</LogicalName>
</EmbeddedResource>
これは動作しますが、私の質問はこれですので、それは手動で、時間がかかり、エラーを起こしやすいです:これを回避するために、私は手動でそうのような.vbproj
ファイルを編集することができます をビルドタスクをしたり、イベントを構築するには書き込まれませんこれは自動的に?
私はあなたがそれをどのように見ているかによって決まると思います。これを達成するために他のプロジェクト全体を追加するのは簡単ですが、単純ではありません。実際に言えば、私は別のdllを配布しなければならないか、それらを組み合わせてpostビルドする必要があります。私はこれを代替案として投票しますが、同じプロジェクト内でこれを達成できるビルド・タスクやビルド・イベントを探しているので、答えとして受け入れることはできません。 –
True enouhg、あまりにも多くのDLLを追加するのは好きではありません。あなたが持っているものに似た形式ですべてのファイルを保管することはどうでしょうか? 「Version ...」フォルダをループして1つの出力ディレクトリに追加することができる短いVBSスクリプトを作成してください。ファイルが最初に変更されたことを確認するためのチェックを追加するだけで、毎回各ファイルを書き換えません。これらのファイルをすべて埋め込みリソースとしてマークすると、そのファイルを上書きしてもリセットされません。繰り返しますが、これを行うための適切な方法ではなく、手作りの部分を少なくとも取り除くことができます。 – DarrenMB