C# NET中的DLL是否可以使用其他扩展名,例如MLL?

C# NET中的DLL是否可以使用其他扩展名,例如MLL?,c#,.net,windows,visual-studio-2010,dll,C#,.net,Windows,Visual Studio 2010,Dll,我知道这是一个奇怪的问题,但在VisualStudio2010C#.Net中,有没有一种方法可以使用不同于DLL的扩展名来命名程序集。例如,MyAssembly.MLL而不是MyAssembly.DLL 我四处摸索,但找不到办法。不,我不这么认为——至少在没有大量额外工作的情况下是这样 我刚刚尝试了手动重命名步骤,尽管可以针对重命名的程序集进行编译,但在执行时找不到它。代码将包含对MyAssembly的引用,运行时将尝试将其解析为MyAssembly.dll和MyAssembly.exe。。。但

我知道这是一个奇怪的问题,但在VisualStudio2010C#.Net中,有没有一种方法可以使用不同于DLL的扩展名来命名程序集。例如,MyAssembly.MLL而不是MyAssembly.DLL


我四处摸索,但找不到办法。

不,我不这么认为——至少在没有大量额外工作的情况下是这样

我刚刚尝试了手动重命名步骤,尽管可以针对重命名的程序集进行编译,但在执行时找不到它。代码将包含对
MyAssembly
的引用,运行时将尝试将其解析为
MyAssembly.dll
MyAssembly.exe
。。。但它不知道您使用的实际文件名。有可能在
app.config
中配置此程序集,或者自己使用来解析程序集,但我强烈怀疑其他东西可能会损坏


除此之外,我会劝阻你不要因为非传统而这样做。您会让其他开发人员、工具等感到惊讶-这不是一个好主意。

为什么要这样做?你能从中得到什么?你能详细说明这一改变背后的意图吗?你可以做一个后期构建步骤,将foo.dll重命名为foo.whackyshit。但我也很好奇你为什么要这么做。如果他在运行时加载DLL,他可能会使用扩展来区分他的DLL和其他DLL。我知道Python为Python扩展模块做这件事;它们以“pyd”结尾。@TaylorBrandstetter,有一些现有的方法可以确定在.NET环境中使用哪个Dll.Correct。短文件名也是如此。Windows Installer有一个数据类型,目录表和文件表使用该数据类型来支持旧系统上的短名称。NET一点也不喜欢这个。但我认为他可以通过
Assembly.CreateInstanceFromAndUnwrap
加载它,例如(我决不是暗示他应该这样做!)@Moo Juice:或AppDomain.AssemblyResolve,正如我刚刚在编辑的答案中所写的那样。这两种方法都有可能奏效,但我不会花太多精力去发现。@JonSkeet,一点也不怪你:)@JonSkeet-谢谢。这正是我所期待的。谢谢你真的试一试。