gpt4 book ai didi

asp.net - 不使用\Bin 或 GAC 的 ASP.NET 中的引用 DLL

转载 作者:行者123 更新时间:2023-12-01 23:57:19 27 4
gpt4 key购买 nike

我有一个受源代码控制 (Subversion) 控制的 ASP.NET 项目。由于各种原因,我不想将\Bin 目录或其内容添加到源代码管理中,因此我将其设置为 svn:ignored。 DLL 在 Visual Studio 构建期间加载到此处,我可以从一个干净的目录开始和/或删除该目录的所有内容,并且仍然可以成功构建。

我可以通过两种方式引用代码以包含在项目中:

  1. 在 Web.config 元素中//configuration/configSections/system.web/compilation/assemblies。我可以 <add> 以这种方式存在于 GAC 中的任何 DLL。我对所有系统 dll 都执行此操作。
  2. 在 VS 解决方案中,有一个设置为 Project/ProjectSection/ProjectReferences这让我可以指定解决方案中包含的其他项目的引用。

(请注意,这与非 Web 项目不同,非 Web 项目对外部依赖项的所有引用都存储在项目文件中。VS Web 项目没有项目文件,因此必须将它们存储在某处否则。)

现在我有一个第 3 方编译的 DLL,我想将其包含在项目中。不幸的是,我发现的引用选项似乎都不适合我:

  1. 除非 DLL 存在于 GAC 中,否则通过 web.config/system.web/compilation/assemblies 进行引用将不起作用;你不能使用文件路径。我真的很想避免 GAC 依赖性,因为这意味着需要执行额外的步骤才能使项目在每台目标计算机上运行。
  2. 我还没有找到在解决方案中包含文件引用的方法,就像我可以使用项目引用一样。
  3. 每当我使用 VS 的“添加引用”对话框添加文件引用时,它只是将 DLL 复制到\Bin 目录。这对我来说不起作用,因为我的\Bin 目录不是跨系统持久的。

还有其他方法可以引用 DLL 文件并保留它吗?

最佳答案

如果您正在进行任何类型的认真开发,我建议您从网站项目迁移到 Web 项目,因为这样您可以在整个解决方案中以相同的方式管理这些类型的依赖关系。

但是,假设您无法这样做,请将需要从 Web 项目引用的所有程序集放入某个文件夹中(例如 lib\web ),并向您的 Web 项目添加一个预构建事件来复制内容将该文件夹复制到 Web 目录的 bin 文件夹中。现在,每当您想要向 Web 项目添加依赖项时,您都可以将其放入 lib\web 文件夹中,然后添加引用。每当您构建时,所有引用的程序集都将被复制到该文件夹​​中,以便您可以删除 bin 文件夹或进行干净的 checkout ,而不会出现任何问题。

关于asp.net - 不使用\Bin 或 GAC 的 ASP.NET 中的引用 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2059118/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com