Je veux dissocier mon fichier sln du serveur TFS et le publier sur SVN est-il une option "facile" pour faire cela. Il est facile d'ouvrir sln et de choisir l'option unbind dans Visual Studio, mais est-ce que quelqu'un a déjà essayé d'automatiser ce processus? Il existe une solution pour éditer le fichier sln en utilisant xmlpoke et en supprimant les informations de liaison, mais est-ce sécuritaire?Msbuild et SLN unbindig
1
A
Répondre
1
J'ai quelques exemples publiés sur la galerie de code MSDN pour le TFS 2010 SDK qui illustrent comment faire cela avec MSBuild et le MSBuild Community Tasks. Voici un extrait de scripts MSBuild à partir du fichier WorkItemType.csproj de l'échantillon WorkItemObjectModel:
<Import Project="$(MSBuildExtensionsPath32)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets" />
<ItemGroup>
<SourceFiles
Include="$(SolutionDir)**/*.*"
Exclude="$(SolutionDir)Package/**/*.*;$(SolutionDir)**/bin/**/*.*;$(SolutionDir)**/obj/**/*.*;$(SolutionDir)**/internal.proj;$(SolutionDir)**/*.*scc;$(SolutionDir)$(SolutionName).zip">
<Visible>False</Visible>
</SourceFiles>
</ItemGroup>
<Target Name="AfterBuild" Condition="'$(Configuration)'=='Release'"
Inputs="@(SourceFiles)" Outputs="$(SolutionDir)$(SolutionName).zip">
<Delete
Files="$(SolutionDir)$(SolutionName).zip"
Condition="Exists('$(SolutionDir)$(SolutionName).zip')" />
<PropertyGroup>
<PackageDir>$(SolutionDir)Package\</PackageDir>
</PropertyGroup>
<MakeDir
Directories="$(PackageDir)" />
<Copy
SourceFiles="@(SourceFiles)"
DestinationFiles="$(PackageDir)%(RecursiveDir)%(Filename)%(Extension)" />
<Delete
Files="$(PackageDir)**/bin/**/*.*;$(PackageDir)**/obj/**/*.*" />
<RemoveDir
Directories="$(PackageDir)**/bin;$(PackageDir)**/obj" />
<Attrib
Files="@(PackageFiles)"
ReadOnly="false" />
<FileUpdate
Files="$(PackageDir)$(SolutionFileName)"
IgnoreCase="true"
Regex="^\s+GlobalSection\(TeamFoundationVersionControl\).+\n(\s*Scc.*\n)+\s+EndGlobalSection"
ReplacementText=" "
Multiline="true"
Singleline="false" />
<ItemGroup>
<ProjectFiles Include="$(PackageDir)**/*.*proj" />
</ItemGroup>
<FileUpdate
Files="@(ProjectFiles)"
Regex="<Scc[A-z]+>.+</Scc[A-z]+>"
ReplacementText=" " />
<ItemGroup>
<PackageFiles Include="$(PackageDir)**\*.*" />
</ItemGroup>
<Zip
Files="@(PackageFiles)"
WorkingDirectory="$(PackageDir)"
ZipFileName="$(SolutionDir)$(SolutionName).zip" />
<Delete
Files="@(PackageFiles)" />
<RemoveDir
Directories="$(PackageDir)" />
</Target>
En un mot, ce script copie les fichiers source dans un répertoire temporaire, supprime les liaisons de contrôle de code source de la solution et les fichiers projet, puis zippe les sources et supprime finalement le répertoire temporaire.
Questions connexes
- 1. En utilisant msbuild pour publier mon fichier sln
- 2. msbuild et cruiscontrol.net
- 3. MSBuild et Debug.AspNetCompiler.TargetPath
- 4. TFS, MSBuild et VS.PHP
- 5. .Net sln structure
- 6. Projet introuvable (.sln)
- 7. VS corrompu fichier .sln?
- 8. CruiseControl.net, msbuild,/p: OutputPath et CCNetArtifactDirectory
- 9. Team Foundation Build (2008) moins les fichiers .sln?
- 10. MSBuild, solution VS2008 et CI - quelles sont les meilleures pratiques?
- 11. Versioning CommonAssemblyInfo.cs et MSBuild
- 12. MSBuild et IgnoreStandardErrorWarningFormat
- 13. MSBuild et _PublishedWebsites
- 14. MSBuild et BuildUri
- 15. différence PowerShell et MSBuild
- 16. CCnet MsBuild et MSTest
- 17. msbuild et subversion
- 18. Comment compiler .sln avec cmd.exe
- 19. Conversion d'une application ASP.NET en Mono sans .csproj et .sln
- 20. fermeture de Google et MSBUILD
- 21. msbuild et recherche de texte
- 22. F # et MSBuild Tool (silverlight)
- 23. Intégration de TeamCity et MSBuild
- 24. MSBuild, propriétés et fichiers importés
- 25. Comment générer .sln/.vcproj en utilisant qmake
- 26. Ouverture des fichiers .sln dans Windows Vista
- 27. MSBuild: Chemin Relatif Arrière dans Inclure
- 28. Besoin d'amorce pour un newbie Msbuild
- 29. VS 2008 Encodage et MSBuild Exec Tâche
- 30. msbuild communauté tâche et Svn commit