【问题标题】:How to prevent VS 2008 from publishing .svn folders as part of publish process?如何防止 VS 2008 在发布过程中发布 .svn 文件夹?
【发布时间】:2010-10-05 10:39:45
【问题描述】:

在 Visual Studio 2008 中发布 asp.net 网站时,有没有一种方法可以强制它忽略本地工作副本中的 .svn 文件夹,这样我的目标文件夹就不会以 .svn 文件结尾部分输出。

谢谢,

杰森

【问题讨论】:

    标签: visual-studio visual-studio-2008 svn version-control publishing


    【解决方案1】:

    Visual Studio 在网站内的“.svn”文件夹存在问题。因此,您应该应用 subversion ASP.NET hack,它使用“_svn”目录而不是“.svn”。

    使用 TortoiseSVN 时,这只是 TSVN 设置中的一个选项(请参阅“常规”页面)。使用SVN命令行客户端时,需要设置环境变量(详见this page)。

    应用此解决方法/破解后,发布网站操作将按预期工作(忽略 _svn 文件夹)。

    更新:

    上述问题存在于 Visual Studio 2003 中(分别是它使用的首页扩展)。较新版本的 Visual Studio 应该没有问题。

    所以关键似乎是简单地在颠覆文件夹(_svn 或 .svn)上设置隐藏标志。然后在发布网站时忽略这些文件夹。 (我使用的是 TortoiseSVN,我猜它会自动在 subversion 文件夹上设置隐藏标志)。

    【讨论】:

    • 马丁,感谢您的回复。设置为隐藏有助于除 /bin 中的 .svn 文件夹之外的所有内容。它仍然在其中发布 .svn 文件夹,即使该文件夹是隐藏的。这是显示我的本地工作副本 /bin 和目标 /bin 的屏幕截图。关于这个特性有什么想法吗?
    • 很抱歉,但我不知道为什么会发生这种情况。我还在网站项目中使用 SVN,并且从未遇到过这个问题(一个区别是我使用的是“_svn”而不是“.svn”)。您使用的是“网站”还是“网络应用程序”项目?
    【解决方案2】:

    bin 文件夹不应成为源代码管理的一部分,只需在解决方案资源管理器中右键单击 Bin 文件夹并“从项目中排除”即可。

    现在使用 Windows 资源管理器,找到您的 bin 文件夹并删除 .svn 文件夹。

    下次发布时(删除所有内容后),您将不会有 .svn 文件,而且,每次构建解决方案时,看起来都不需要签入更改。

    【讨论】:

    • 但是如果你的 dll 不是由你的项目生成的呢?像 Elmah.dll 或其他一些第三方 dll?您将如何处理?
    • 我会有一个名为“dependencies”的文件夹,它是源代码控制的一部分。然后是一个后期构建脚本,将那里的所有文件复制到您的“输出”目录中。这样,无论进行调试还是发布构建,您都拥有依赖关系。 [要添加构建后脚本,请转到项目的设置/属性页面,我认为在编译下]
    • +1 用于从依赖文件夹中获取这些额外的程序集,您也可以使用添加作为项目的链接并将其属性设置为复制到输出
    【解决方案3】:

    您可以右键单击 VS 中的文件夹并将其从项目中删除,或者您可以确保文件夹中包含的任何文件的 Build Action 设置为 None 并将 Copy to Output Directory 设置为 Do not copy

    【讨论】:

    • .svn 文件夹实际上并未显示在解决方案资源管理器中(请参阅此处的屏幕截图screencast.com/t/WR1tmU1WyR3
    • 这对于大型项目来说也是非常不切实际的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2018-07-25
    • 1970-01-01
    相关资源
    最近更新 更多