1

对于我的一个 ASP.Net 站点,我使用 AnkhSVN 提交到带有提交后挂钩的 VisualSVN 服务器来更新实时网站。

此设置适用于除 Bin 目录之外的每个目录。当我构建我的解决方案时,dll 被放置在站点的 /Bin 中,但未显示在 Pending Changes 中。如果我选择 dll,右键单击 -> 刷新状态,右键单击 -> 提交...它将被提交,但我无法将 /Bin 中的 dll 与站点的其余部分一起提交。

我究竟做错了什么?

4

4 回答 4

3

Visual Studio 不会将项目中引用的 dll 视为源。因此它们永远不会被签入,只会在站点构建时复制到 bin 文件夹中。

VS 使用 .refresh 文件知道引用了哪些 dll(.refresh 文件的内容指向原始 dll),这些刷新文件被视为源并将被检入。因此,为了使您的设置正常工作,您需要在部署站点之前构建项目。

Imo 这种任务属于构建系统,如CruiseControl.NetTeamCity,而不是 svn post commit。您可以轻松设置这样的系统来监控您的 svn 存储库,让它编译解决方案,然后在成功构建后发布到实时网站。

实际上,我建议不要在没有先发布到登台服务器进行测试的情况下直接自动发布到实时网站。但是你也可以让你的构建系统这样做。

于 2009-10-19T22:20:14.803 回答
2

AnkhSVN 不查找库和一些附加文件!

但是您可以在手动模式下将其他文件添加到 SVN 中:

  • Coose View -> 工作副本资源管理器

  • 找到您要添加的文件,然后单击添加:

在此处输入图像描述

  • 按确定!

  • 现在您可以在“待更改”窗口中看到您的库。

于 2011-10-13T09:14:31.093 回答
2

检查您的 bin 文件夹中的文件是否处于版本控制之下(如果没有,您可以执行 svn add )。另一种可能性是 bin 目录中的文件被subversion忽略了。在这种情况下,您必须将它们从忽略列表中删除。

于 2009-10-20T00:05:25.453 回答
0

同意纳德的观点。也许文件不受源代码控制。还建议您不要在源代码管理中包含 bin 文件(因为它们实际上是构建项目)。将源代码置于版本控制之下并在构建完成后对其进行适当标记就足够了,这样您就可以在需要时重现必要的二进制文件。如果您必须对构建的包进行标记和版本控制,那么您可以在构建工作区上运行svn status - 它会显示所有尚未包含在源代码管理下的文件,您可以编写一个小脚本来添加它们。

于 2009-10-20T03:20:50.710 回答