Skip to content

ignatandrei/RSCG_ExportDiagram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RSCG_ExportDiagram

export diagram for external relations for a csproj with other csproj

Install

Add to the csproj

<ItemGroup> <PackageReference Include="RSCG_ExportDiagram" Version="2024.904.427" OutputItemType="Analyzer" ReferenceOutputAssembly="false" /> </ItemGroup> <ItemGroup>	<CompilerVisibleProperty Include="RSCG_ExportDiagram_OutputFolder" />	<CompilerVisibleProperty Include="RSCG_ExportDiagram_Exclude" /> </ItemGroup> <PropertyGroup> <RSCG_ExportDiagram_OutputFolder>..</RSCG_ExportDiagram_OutputFolder> <RSCG_ExportDiagram_Exclude></RSCG_ExportDiagram_Exclude> </PropertyGroup> 
And the diagram will be generated in the folder parent for the .csproj file 

Alternatively, you can use the command line tool to generate the diagram for a solution

function ProcessCsproj { param ( [string]$project, [string]$folderOutput ) $version = "2024.904.427" #$folderOutput= ".." $newNode = [xml]@" <MainData> <ItemGroup>  <CompilerVisibleProperty Include="RSCG_ExportDiagram_OutputFolder" />  <CompilerVisibleProperty Include="RSCG_ExportDiagram_Exclude" /> </ItemGroup>  <PropertyGroup>  <RSCG_ExportDiagram_OutputFolder>$folderOutput</RSCG_ExportDiagram_OutputFolder>  <RSCG_ExportDiagram_Exclude></RSCG_ExportDiagram_Exclude> </PropertyGroup> </MainData> "@ # Write-Host $newNode.MainData.InnerXml $backFile =$project + ".bak" Copy-Item $project $backFile dotnet add $project package RSCG_ExportDiagram -v $version $proj = [xml](Get-Content $project) $foundNode = $proj.Project #Write-Host $proj.Project.InnerXml $ItemGroup = $proj.ImportNode($newNode.DocumentElement.ItemGroup,$true) $proj.Project.PrependChild($ItemGroup) $proj.DocumentElement.AppendChild($ItemGroup ) $PropertyGroup = $proj.ImportNode($newNode.DocumentElement.PropertyGroup,$true) $proj.Project.PrependChild($PropertyGroup) $proj.DocumentElement.AppendChild($PropertyGroup) $proj.Save($project) dotnet build # pause Copy-Item $backFile $project -Force Remove-Item $backFile -Force } $solution = gci *.sln | %{ $_.FullName} $folderSolution = Split-Path $solution # Write-Host $folderSolution Get-Content $solution | Select-String 'Project\(' | ForEach-Object { $projectParts = $_ -Split '[,=]' | ForEach-Object { $_.Trim('[ "{}]') }; # New-Object PSObject -Property @{ # Name = $projectParts[1]; # File = $projectParts[2]; # Guid = $projectParts[3] # } if ($projectParts[2] -match '.csproj$'){ $fileProject =Join-Path $folderSolution $projectParts[2] Write-Host $fileProject ProcessCsproj -project $fileProject -folderOutput $folderSolution } } 

About

export diagram for external relations for a csproj

Resources

License

Stars

Watchers

Forks

Packages

No packages published