如何避免在Web Publish中发布库文件夹?

时间:2015-11-17 18:18:16

标签: visual-studio bin-folder

我已将二进制文件移动到bin文件夹下的项目中,以避免两次发布相同的二进制文件,因为其中一个二进制文件很大;即15MB。

这最初位于单独的 包含 文件夹中。因此文件被复制两次到发布文件夹。

bin文件夹是否是正确的位置,还是我应该采取其他步骤?

编辑: 对不起,如果我给出了一个糟糕的解释(和原始标题)。我改变了头衔;这是“静态库(第三方DLL)应该放在Visual Studio中的哪个位置?”,现在,“我怎样才能避免在Web Publish中发布库文件夹?”

如上所述,我最初有一个名为 Includes 的单独文件夹。当我进行Web发布时,每个DLL都会发布两次;一个进入bin文件夹,另一个进入 Includes 文件夹。在这种情况下,我发布了至少15MB的不必要文件空间。通常情况下,这不是什么大问题,但如果我的连接速度非常慢,我需要等待更长时间才能将项目部署到其环境中。

我将DLL移回了一个单独的文件夹,但该文件夹仍然与bin输出文件夹一起发布。我这样做是为了看看这些文件的位置是否会以不同的方式设置它们的属性。

我已经尝试了针对这些库的Build Action和其他属性设置的各种设置但没有成功。

是否无法两次发布DLL?

1 个答案:

答案 0 :(得分:2)

如果这些文件是系统整体来源的一部分(不一定是源代码,但仍然是源代码控制跟踪的工件),那么你可能想要保留它们在构建的输出文件夹中。输出文件夹应该是瞬态的,不应在源代码管理中跟踪。

将第三方库保留在库文件夹中。源代码管理中的文件夹结构可能如下所示:

/
--/lib
--/Project1
----/SomeSubFolder
--/Project2
----/Images
----/Styles

等等。

每个Project在编译时都有自己的bin文件夹,它本身可能包含编译类型的其他文件夹(发布,调试等)。但是你不希望在源代码控制中跟踪那些构建工件,或者以任何方式干扰源代码控制中的内容。

项目将引用它们的库依赖项,并且在构建时,这些依赖项将被复制到输出文件夹以供应用程序运行时使用。