2013-06-03 6 views
6

これはうんざりな質問ですが、Visual Studio 2010 C#.NETには、DLLとは異なる拡張子を持つアセンブリの名前を付ける方法があります。たとえば、MyAssembly.DLLの代わりにMyAssembly.MLL。.NETのDLLは異なる拡張子を使用することができます。 MLL?

私は突き刺しましたが、やり方を見つけることができませんでした。

+11

なぜこれをやりたいですか?あなたはそれを得るために何をしていますか? – Arran

+4

その変更の背後にある意図を拡大できますか? – rae1

+2

'' foo.dll foo.whackyshit'の名前を変更するポストビルドステップを作ることができます。しかし、私はあなたがなぜそれをしたいのかについても興味があります。 –

答えて

10

いいえ、私はそう信じていません - 少なくとも余分な作業をせずに。

これは手作業の名前変更手順で試したところですが、は名前を変更したアセンブリに対してをコンパイルできますが、実行時には見つかりません。コードにはMyAssemblyへの参照が含まれており、ランタイムはそれをMyAssembly.dllMyAssembly.exe ...に解決しようとしますが、使用したファイル名は実際にはわかりません。 可能ですapp.config以内にこれを設定する方法や、AppDomain.AssemblyResolveを使用してアセンブリを解決する方法がありますが、他のものが壊れる可能性が強く疑われます。

他のものとは別に、私はあなたに妥協しないという意味でこれをしないことをお勧めします。あなたは他の開発者、ツールなどを驚かせるでしょう - 良い考えではありません。

+0

正しい。短いファイル名でも同じです。 Windowsインストーラには、レガシーシステムで短い名前をサポートするために、ディレクトリテーブルとファイルテーブルで使用されるデータ型があります。 .NETはこれをまったく気に入らない。 –

+0

+1。しかし、私は、Assembly.CreateInstanceFromAndUnwrapを使って彼がロードできると思っているのです。例えば、彼は* should * *を暗示しているわけではありません!) –

+0

@ Moo-Juice:またはAppDomain.AssemblyResolveは、編集された答えに書かれているだけです。どちらかが動作する可能性はありますが、私は見つけようと努力するつもりはありません。 –

関連する問題