Problemi nel far funzionare insieme MSBuild e MSBuildCommunityTasks (VSS)
-
03-07-2019 - |
Domanda
Sto cercando di imparare come eseguire determinate attività di controllo del codice sorgente con VSS e MSBuildCommunityTasks, ad esempio come utilizzare attività come GetVSS e VssLabel? I documenti non lo chiariscono. E quando lo colpisco per vedere se i messaggi di errore possono dirmi qualcosa, non è nemmeno molto chiaro cosa fare allora. Lascia che ti mostri cosa sto facendo e cosa ottengo - spero che qualcuno possa indicarmi la giusta direzione.
Il progetto è scritto in C # usando VS2005. Ecco l'origine del file di progetto 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>
Ricevo messaggi di errore come segue:
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.
Mi viene in mente che potrei aver bisogno di mettere una sorta di elemento di importazione lì per puntare a VSS, in particolare per puntare a Microsoft.VisualStudio.SourceSafe.Interop, ma non riesco a trovare un file .dll con quel nome e non è nell'elenco dei componenti nella scheda .NET della finestra di dialogo Aggiungi riferimento in Visual Studio.
Soluzione
OK, sto rispondendo alla mia domanda.
MSBuildCommunityTasks richiede Visual Source Safe 2005, fornito con VS2005. Tuttavia, stiamo ancora utilizzando VSS 6.0d e MSBuildCommunityTasks non funziona con esso. La guida per gli sviluppatori per i compiti afferma:
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