将程序集引用添加到已部署的ASP.NET站点

时间:2014-12-12 17:58:47

标签: asp.net visual-studio iis assembly-references

我试图了解程序集引用如何在IIS上运行的ASP.NET网站的已部署文件结构中实际显示。

这是了解Visual Studio在幕后实际做什么的练习

我选择作为测试主题的程序集是System.IO.Compression.FileSystem,因为在ASP.NET项目中默认情况下似乎没有引用它(尝试使用它的组件)总是导致"您是否缺少程序集引用?"即使相应的命名空间System.IO.Compression的using语句在文件中也是如此)

所以我有一些小的示例代码试图在IIS服务器上使用这个程序集,我想在不打开Visual Studio的情况下在原位添加引用

我认为我非常接近IISManager-> [[SITE_NAME]] - > .NET编译 - > General-> Assemblies的答案,但我添加到此列表中的任何内容似乎都没有工作,我总是回来"系统找不到指定的文件"如果我已经正确地理解了文档,那么#34; *"应该加载一切,但似乎没有这样做

2 个答案:

答案 0 :(得分:1)

我最终得到了答案,详细信息请关注未来读者的利益

IISManager-> [[SITE_NAME]] - > .NET编译 - > General-> Assemblies确实是正确的地方,它没有用,因为我错误输入了PublicKeyToken

也可以在configuration-> system.web->编译 - >程序集

中为您的站点的主web.config文件中找到程序集列表。

您需要在Windows / Microsoft.NET /程序集中找到要在GAC中引用的程序集并打开它的文件夹,里面将是另一个以您需要输入的版本和密钥命名的文件夹

答案 1 :(得分:0)

当您引用引用和using语句时,您会混淆两种不同的东西。

引用是程序集指向的程序集。如果使用反编译器(如Telerik JustDecompile),则可以看到在Visual Studio中列出的引用的程序集。

'using'语句是一种代码快捷方式,允许您在不完全限定类的情况下引用类。如果您已添加(例如,在MVC项目中)using System.Web.Mvc;,您可以写:

public ActionResult Index()
{
    throw new NotImplementedException();
}

如果没有using语句,则必须写:

public System.Web.Mvc.ActionResult Index()
{
    throw new NotImplementedException();
}

以上两者都会产生相同的编译字节码; using语句纯粹是为了让您的生活变得更加轻松。