代码之家  ›  专栏  ›  技术社区  ›  Dasmowenator

如何使visualstudio从bin运行程序集文件(依赖项)?

  •  0
  • Dasmowenator  · 技术社区  · 14 年前

    我有一个由多个项目组成的解决方案,这些项目相互之间有各种依赖关系。当我构建项目/解决方案时,它会在project\bin文件夹中创建DLL程序集文件。但当我运行程序时,它会将所有内容复制到临时文件文件夹并从那里运行:

    所以现在在bin文件夹和temporary files文件夹中,每个项目都有相同的DLL文件,从中运行。问题是,我在几个地方的项目中硬编码了对bin目录的引用,所以当它出现在那里时,它会返回一个DLL错误。如何让visualstudio从原始bin目录运行程序集文件,而不是复制它们并从临时文件运行它们?

    另外,请不要告诉我改变硬编码-有理由它必须保持原样;所以我才想办法逃出垃圾箱。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Matthew Abbott    14 年前

    这就是所谓的卷影复制,它是一个设计特性。特别是对于ASP.NET站点,它允许在不卸载应用程序域的情况下更新域程序集,这对于设计为连续运行的ASP.NET站点非常重要。我真的建议您保持打开状态,并重新评估\bin目录的使用要求。

    如果确实要禁用卷影复制,请将以下内容添加到web.config文件中:

    <hostingEnvironment shadowCopyBinAssemblies="false" />
    

    执行上述操作的副作用是\bin目录中的程序集将在应用程序的生存期内被锁定。