有没有办法将ASP.NET应用程序指向引用而不是将它们复制到Bin文件夹?

时间:2012-04-15 02:44:44

标签: asp.net reference web-config

我们有一堆示例ASP.NET应用程序。我不想在每个样本中将DLL复制到Bin文件夹,因为所有文件都必须在更改时更新。

有没有办法将ASP.NET应用程序指向引用,例如可以使用Forms或命令行应用程序?

更新:要回答以下问题,请让我更好地解释一下这里的情况。我们有一个商业产品,它是一组DLL。我们提供了许多使用它的示例应用程序,包括几个ASP.NET应用程序。所有这些,我们的产品DLL和我们的示例源都安装在用户的计算机上。

当他们去编译其中一个示例时,我们希望该示例使用随其安装的DLL版本。安装过程在GAC中作为默认选项,但是如果用户不想要GAC中的DLL,则用户可以取消选中,在这种情况下,我们必须访问安装它们的DLL,或者将它们复制到每个Bin目录中

4 个答案:

答案 0 :(得分:2)

要添加引用,请右键单击visual studio中的bin文件夹,您会在那里找到添加引用选项。

答案 1 :(得分:1)

问题很明确,但背景不是。

让我有几个应用程序都使用相同的应用程序DLL是没有意义的。它只是所有应用程序使用的库吗?

根据您的需求和需要,有一些选择:

<强> 1。直接添加参考

如果您真的只想添加引用,请右键单击VS项目中的“引用”,然后选择“添加引用”。选择参考点击确定。在此之后,右键单击添加的引用并选择“属性”并将“本地副本”设置为false,因此不会将其复制到bin文件夹。

也许选项名称有点不同,但我现在没有英语VS.应该几乎是你必须做的。

<强> 修改

在此窗口中将“本地副本”设置为“假”(此处显示为“Lokale Kopie”,抱歉,这是德语)。

set local copy

<强> 2。把dll放在GAC中

如果您在同一台服务器上有几个应用程序的共享代码库,您可以考虑将该库放入GAC

第3。源代码管理问题

正如IrishChieftain所提到的,您可能使用源代码控制,并且不希望每次都更新bin文件夹中的dll。解决方案就是忽略源代码管理中的bin文件夹。

答案 2 :(得分:1)

您可以使用项目“引用”节点上的上下文菜单添加任何您喜欢的引用: enter image description here

在&#39;添加参考&#39;单击“浏览”选项卡上的对话框,您可以浏览并添加所需的任何外部参考。对于常见的程序集,我们通常将它们放在文件系统的公共位置,然后在需要时从该位置引用它们。

答案 3 :(得分:0)

在某些情况下,您不希望在设计时引用某些装配体。您可以使用AppDomain.AssemblyResolve事件处理程序在运行时基于逻辑加载它们。如果您有可以通过抽象级别引用的程序集,并且您不想直接引用,则可以使用以下模式省略它们并在运行时执行某些算法以查找然后将程序集添加到AppDomain。

这是我放在global.asax,Application_Start处理程序中的代码片段:

public class Global : System.Web.HttpApplication
{

    protected void Application_Start(object sender, EventArgs e)
    {
        AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
    }

    System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
    {
        // use this space to add logic to find your assemblies

        return null; // will throw a Dependency-related exception
    }

如果有任何问题或者我错过了您的问题,请告诉我。

-G