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

问题描述:

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

这是最初在一个单独的包括文件夹。所以文件被复制两次到发布文件夹。

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

编辑: 对不起,如果我给了一个不好的解释(和原标题)。我改变了标题;这是“静态库(第三方DLL)应该保存在Visual Studio中吗?”,现在是“我怎样才能避免在Web发布中发布库文件夹?”

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

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

我已经尝试过为这些库的构建操作和其他属性设置的各种设置而没有成功。

有没有办法绕过发布DLL两次?

+0

在与发布文件夹分开的文件夹中,除此之外,它是首选项。由于您的问题的偏好方面,您的问题可能会被视为“基于意见”。 – cybermonkey

+0

请参阅编辑更新。对这个糟糕的解释抱歉。 – Ruge

如果这些文件系统(不一定是源代码,但作为源代码控制跟踪的文物仍然)的总源的一部分,那么你可能希望保留他们在输出文件夹为建立。输出文件夹应该是瞬态的,不应在源代码控制中进行跟踪。

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

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

等等。

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

这些项目会引用它们的库依赖关系,在构建时这些依赖关系会被复制到应用程序运行时使用的输出文件夹中。

+0

请参阅编辑。我试图避免两次发布库文件。谢谢。 – Ruge

+0

@Ruge:文件没有被“发布”两次。它们作为代码使用的工件存在于源代码控件中,它们作为正在运行的进程使用的构件存在于构建输出中。这两个服务单独的目的,不应混合。 (试图混合它们,或者基本上跨越源代码和构建输出之间的界限,只是在问问题。)如果磁盘空间受到15MB的限制,那么你就会遇到比这个更大的问题。 – David