我试图了解程序集引用如何在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; *"应该加载一切,但似乎没有这样做
答案 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
语句纯粹是为了让您的生活变得更加轻松。