Возникли проблемы при совместной работе MSBuild и MSBuildCommunityTasks (VSS) - PullRequest
2 голосов
/ 15 октября 2008

Я пытаюсь узнать, как выполнять определенные задачи контроля версий с помощью VSS и MSBuildCommunityTasks, например, как использовать такие задачи, как GetVSS и VssLabel? Документы не дают понять это. И когда я нажимаю на него, чтобы посмотреть, могут ли сообщения об ошибках сказать мне что-нибудь, на самом деле тоже не очень понятно, что делать потом. Позвольте мне показать, что я делаю и что я получаю - я надеюсь, что кто-то может указать мне правильное направление.

Проект написан на C # с использованием VS2005. Вот источник файла проекта MSBuild:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
    <Target Name="GetLatestVersionVSS">
        <VssGet DatabasePath="C:\VSS\Astronom_VSS" 
            Path="$/Astronom_VSS" 
            LocalPath="C:\VisualStudioSource\AstronomySolution\Astronom" UserName="build" Password="build" />
    </Target>
    <Target Name="Compile" DependsOnTargets="GetLatestVersionVSS">
        <MSBuild Projects="Astronomer.x.csproj" />
    </Target>
</Project>

Я получаю сообщения об ошибках следующим образом:

Target GetLatestVersionVSS:
C:\Documents and Settings\michaelc\My Documents\Visual Studio 2005\Projects\Astronom\Astronomer\msbuild_UseVSS.xml(7,5): 
   error MSB4018: The "VssGet" task failed unexpectedly.
C:\Documents and Settings\michaelc\My Documents\Visual Studio 2005\Projects\Astronom\Astronomer\msbuild_UseVSS.xml(7,5): 
   error MSB4018: System.IO.FileNotFoundException: Could not load file or assembly 
   'Microsoft.VisualStudio.SourceSafe.Interop, Version=5.2.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 
   or one of its dependencies. The system cannot find the file specified.
C:\Documents and Settings\michaelc\My Documents\Visual Studio 2005\Projects\Astronom\Astronomer\msbuild_UseVSS.xml(7,5): 
   error MSB4018: Filename: 'Microsoft.VisualStudio.SourceSafe.Interop, Version=5.2.0.0, Culture=neutral, 
   PublicKeyToken=b03f5f7f11d50a3a'
...And so on.

Мне приходит в голову, что мне может понадобиться поместить какой-то элемент Import, чтобы указать на VSS, в частности, чтобы указать на Microsoft.VisualStudio.SourceSafe.Interop, но я не могу найти файл .dll с таким именем, и его нет в списке компонентов на вкладке .NET диалогового окна «Добавить ссылку» в Visual Studio.

1 Ответ

3 голосов
/ 16 октября 2008

ОК, я отвечаю на свой вопрос.

MSBuildCommunityTasks требует Visual Source Safe 2005, который поставляется с VS2005. Однако мы все еще используем VSS 6.0d, и MSBuildCommunityTasks не работает с ним. Руководство разработчика по задачам гласит:

Developer's Guide for http://msbuildtasks.tigris.org/
=====================================================

Build Environment Prerequisites
------------------------------
- .NET2.0
- MSBuild; typically already installed as part of .NET2.0,
  for example in C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe
- NUnit 2.2.X (http://www.nunit.org/);
  necessary to run the tests
- Microsoft Visual SourceSafe(R) 2005;
  the library Microsoft.VisualStudio.SourceSafe.Interop gets referenced
- NDoc 1.3 (http://ndoc.sourceforge.net/)
  additionally configure NDoc to use .NET2; see
  http://ndoc.sourceforge.net/wiki/dotNet_2.0_Support
- Microsoft Visual Studio 2005 as IDE
...