我已经读过手动放置在Bin中的程序集也会被自动引用

时间:2009-04-28 19:09:44

标签: c# .net asp.net assemblies


Q1

我们可以通过 Website - >向Web项目添加程序集引用。添加引用,并且该Web项目中的所有页面都将自动引用程序集。

但是我已经在某处读过,即使我们只是复制(因此我们不通过网站 - >添加参考)将程序集添加到Web项目的Bin目录中,它仍然会被该项目中的所有页面自动引用。但据我所知,情况并非如此?!


Q2

A)已部署的网站项目还会生成PrecompiledApp.config和website1_deploy.wdproy。

这两个文件是否也应该复制到服务器上?

B)已部署的Web应用程序项目还会生成WebApplication1.csproj和WebApplication1.csproj.user。

  • 这两个文件是否也应该复制到服务器上?如果是这样,为什么?

  • 我认为不应该将obj目录复制到Web服务器上?!


感谢名单

3 个答案:

答案 0 :(得分:2)

Q1:网站项目中的“添加引用”意味着不仅仅是直接将dll复制到bin中。它还意味着在app.config中放置一个依赖项并放置一个提示文件,帮助Visual Studio从源中找到dll。 visual studio使用此路径将dll直接复制回bin(如果以某种方式将其删除)并提供“更新参考”功能。在app.config中注册dll对于运行时使用正确版本的dll编译代码至关重要。

Q2A: website1_deploy.wdproy不是必需的。 PrecompiledApp.config是。该文件告诉运行时该网站已经预编译,并且aspx文件只是IIS的占位符。

Q2B:您不必复制所有这些文件。 .csproj文件仅供visual studio跟踪项目中的所有文件。运行时不会对它做任何事情。 .csproj.user文件具有您的设置,运行时也不会对其执行任何操作。它甚至不理解它。 obj文件夹是编译器的临时目录。编译后也不需要。

答案 1 :(得分:1)

Q1 - 复制到bin是运行时的事情。 Web项目是一个开发时间的事情。它们有关但不一样。

答案 2 :(得分:1)

当您提供引用时,它通常会在配置文件中加载引用,因此如果您在配置文件中添加所需的条目并将dll复制到bin文件夹中,它将直接引用而不实际“添加引用”< / p>

你根本不需要复制wdproj文件。它只是一个有助于构建您的版本的部署项目。

但是,您需要将precompiled.config文件复制到已部署的目录中。