不要在ASP.NET中发布特定文件夹

时间:2009-04-22 19:43:19

标签: asp.net visual-studio-2008 build publish

是否可以排除Web项目中的文件夹被发布?我们有一些包含在特定项目文件夹中的文档和脚本,并且已添加到项目中,但是当我执行VS发布时,我不希望它们转到生产服务器。

我知道他们不应该参与这个项目,但在我试图说服所有者修改他的工作方式之前,我想我会找到一个解决方法。

8 个答案:

答案 0 :(得分:3)

旧问题,但我发现如果我在Windows资源管理器中将该文件夹标记为hidden,则它不会在您的解决方案中显示/发布。

例如,这可以阻止原始的photoshop图像包含在未使用且很大的上传中。虽然你可能想要编写自己的发布工具,但任何事情都会更复杂。

答案 1 :(得分:2)

这完全没有回答你的问题,但我的感觉是,除非你是一个发布到服务器的开发人员,否则最好在使用MSBuild(或其他一些建筑物)的专用工作站或服务器上进行构建。直接部署解决方案(从而能够非常精细地控制生产的内容)。 MSBuild不仅可以构建,而且可以使用一些扩展(包括开源类型),也可以部署。微软有一款名为MSDeploy的测试产品,这可能是一个更好的选择,但没有经验,我不能肯定。

在我们的情况下,我们有一个虚拟工作站作为构建盒,我们所要做的就是双击启动MSBuild项目的批处理文件。它使用VSS标记所有代码,获取最新版本,构建解决方案,然后将其部署到两个服务器。我们正在部署我们想要部署的内容,仅此而已。我们对它很满意。

唯一的缺点是,如果它被认为是一个缺点,我们至少有一个人必须学习如何使用MSBuild。 VS本身使用MSBuild。

答案 2 :(得分:1)

对于您不想去的文件,循环访问属性并将“复制到输出目录”设置为“不要复制”

但是,此选项不适用于目录。

答案 3 :(得分:0)

你能不能通过visual studio将它们从项目中排除,以阻止它们被发布。它们仍将存在于文件系统

答案 4 :(得分:0)

根据我的知识,你可以做到这一点的唯一方法是将它从项目中排除,进行发布,然后将其重新包含在项目中。这可能是一个问题。

答案 5 :(得分:0)

可能有更好的方法来解决这个问题但是当我们为我们的开发服务器发布一个构建时,我们将在构建完成时运行一个批处理文件来删除不需要的文件夹和web.configs(所以我们不要覆盖已部署的那些。)

答案 6 :(得分:0)

根据http://www.mahingupta.com/mahingupta/blog/post/2009/12/04/AspNet-website-Exclude-folder-from-compilation.aspx,你可以在Windows资源管理器中为文件夹提供“隐藏”属性,它不会发布。我对此进行了测试,它对我有用。

似乎是一个直接的解决方案,用于快速和肮脏的目的,但我认为它不会通过我们的版本控制(mercurial)。

答案 7 :(得分:0)

选择所有不应发布的文件。

转到“属性” 组 构建行动 - >无

enter image description here

必须为每个子目录重复此过程。