14

我知道通过 ASP.NET 网站下的动态编译,文件背后的代码被编译成程序集。运行 IIS Express 时,这些 DLL 存储在哪里?它只存在于内存中吗?我在 bin 文件夹或临时目录 (C:\Windows\Microsoft.NET\Framework[64]\v4.0.30319) 中看不到它们。通常我会在发布时预编译它们时生成它们。但是,在这种情况下,我看不到它们。

我错过了什么吗?

谢谢。

更新:

我确实在 C:\Users\Administrator\AppData\Local\Temp\Temporary ASP.NET Files\root 下看到了 dll

所以我认为它将它们存储在那里?这是 Visual Studio 2012,.NET 4.5。

4

2 回答 2

6

请参考:http: //msdn.microsoft.com/en-us/library/e22s60h9%28v=vs.85%29.aspx

它确实应该在您的 Bin 文件夹中。

这是框架 4.5 的附加信息:http: //msdn.microsoft.com/en-us/library/hh475319.aspx

于 2013-08-13T04:45:51.810 回答
3

它很可能不是您的 bin 文件夹。一切都被复制到一组临时文件夹中。

我为这个问题写了一个方法 -

private string[] GetAssembly(string[] assemblyNames)
{
    string [] locations = new string[assemblyNames.Length];

    for (int loop = 0; loop <= assemblyNames.Length - 1; loop++)       
    {
         locations[loop] = AppDomain.CurrentDomain.GetAssemblies()
           .Where(a => !a.IsDynamic && a.ManifestModule.Name == assemblyNames[loop])
           .Select(a => a.Location)
           .FirstOrDefault();
    }
    return locations;
}

请参阅我在该主题上写的这篇文章 - http://nodogmablog.bryanhogan.net/2015/05/finding-the-location-of-a-running-assembly-in-net/

于 2015-05-02T17:20:54.577 回答