Mig*_*gol 118 .net migration dependencies graph visual-studio
我目前正在将一个大型解决方案(约70个项目)从VS 2005 + .NET 2.0迁移到VS 2008 + .NET 3.5.目前我有VS 2008 + .NET 2.0.
问题是我需要逐个移动项目到新的.NET框架,确保没有.NET 2.0项目引用.NET 3.5项目.有没有什么工具能给我一个很好的项目依赖图?
Dan*_*eny 149
我需要类似的东西,但不想支付(或安装)工具来做它.我创建了一个快速的PowerShell脚本,它通过项目引用并以yuml.me友好格式将它们吐出:
Function Get-ProjectReferences ($rootFolder)
{
$projectFiles = Get-ChildItem $rootFolder -Filter *.csproj -Recurse
$ns = @{ defaultNamespace = "http://schemas.microsoft.com/developer/msbuild/2003" }
$projectFiles | ForEach-Object {
$projectFile = $_ | Select-Object -ExpandProperty FullName
$projectName = $_ | Select-Object -ExpandProperty BaseName
$projectXml = [xml](Get-Content $projectFile)
$projectReferences = $projectXml | Select-Xml '//defaultNamespace:ProjectReference/defaultNamespace:Name' -Namespace $ns | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty "#text"
$projectReferences | ForEach-Object {
"[" + $projectName + "] -> [" + $_ + "]"
}
}
}
Get-ProjectReferences "C:\Users\DanTup\Documents\MyProject" | Out-File "C:\Users\DanTup\Documents\MyProject\References.txt"
Run Code Online (Sandbox Code Playgroud)
Shk*_* S. 71
更新:从版本8开始,ReSharper内置了"View Project Dependencies"功能.
ReSharper版本<8具有内部功能,可在使用yFiles查看器时显示依赖关系图.请参阅帖子底部的快速手册.

如何
Mad*_*han 51
制作了 powershell 脚本等。在这里发布到 dotnet 工具中。
安装
确保您已安装 dotnet 5 运行时
确保您已安装 dotnet 6 运行时
跑步dotnet tool install dependensee --global
安装后,运行dependensee "path/to/root/of/csproj/files" "path/to/output.html"
默认情况下它不包含 nuget 包,但可以通过-Pswitch启用
要查看所有选项,请dependensee不带参数运行。
HTML 输出看起来像这样
有一些命令行选项允许您输出 XML 或 JSON 以进行进一步处理,可以将它们写入文件或写入标准输出,从而允许将输出通过管道传输到其他命令行工具,而无需在必要时接触文件系统。
Eri*_*ono 38
你试过NDepend吗?它将向您显示依赖项,您还可以分析类和方法的可用性.
他们的网站:
小智 31
您可以使用Visual Studio 2010 Ultimate轻松获取项目依赖关系图,扫描到此视频的5分钟内查看:http://www.lovettsoftware.com/blogengine.net/post/2010/05/27/Architecture-Explorer的.aspx
在Visual Studio 2010 Ultimate:架构| 生成依赖关系图| 通过大会.
我有一个类似的问题,但它更复杂,因为有几个项目引用了同一个程序集的不同版本.
要获得包含版本信息的输出并检查可能的运行时程序集加载问题,我创建了此工具:
https://github.com/smpickett/DependencyViewer
(直接链接到github发布:https://github.com/smpickett/DependencyViewer/releases)
您可以在VS 2010 Ultimate中创建项目的依赖关系图.Architecture Explorer允许您浏览解决方案,选择项目以及要显示的关系,然后根据您的选择创建依赖关系图.
有关详细信息,请参阅以下主题:
如何:从代码生成图形文档:http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource
如何:使用Architecture Explorer查找代码:http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx
RC下载:http://www.microsoft.com/downloads/details.aspx?displaylang = en&FamilyID = 457bab91-5eb2-4b36-b0f4- d6f34683c62a.
Visual Studio 2010体系结构发现和建模工具论坛:http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads
如果您正在寻找一种不需要任何外部工具的方法,您可以导航到项目的obj/project.assets.json文件。该文件是在构建期间生成的,并且具有依赖项的分层 JSON 结构(项目引用和 nuget 包)。
它对于回答诸如“为什么这个项目 DLL 被拉到构建目录中?”之类的问题很有用。
在PowerShell的解决方案是最好的。我将它改编成一个在我的机器(TM)上运行的 bash 脚本:
#!/bin/bash
for i in `find . -type f -iname "*.csproj"`; do
# get only filename
project=`basename $i`
# remove csproj extension
project=${project%.csproj}
references=`cat $i | grep '<ProjectReference' | cut -d "\"" -f 2`
for ref in $references; do
# keep only filename (assume Windows paths)
ref=${ref##*\\}
# remove csproj extension
ref=${ref%.csproj}
echo "[ $project ] -> [ $ref ]"
done
done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73868 次 |
| 最近记录: |