Skip to content

Commit 41f3170

Browse files
committed
修改文档
1 parent be57da4 commit 41f3170

1 file changed

Lines changed: 44 additions & 22 deletions

File tree

README.md

Lines changed: 44 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,45 @@
1-
# Roslyn 让 VisualStudio 急速调试底层库方法
2-
3-
在一个大项目里面调试底层库经常需要重新编译整个项目,本项目提供了在底层库编译完成之后将输出文件复制到主项目的输出文件夹,通过外部项目调试的方式提高调试效率
4-
5-
[![](https://img.shields.io/nuget/v/dotnetCampus.UsingMSBuildCopyOutputFileToFastDebug.svg)](https://www.nuget.org/packages/dotnetCampus.UsingMSBuildCopyOutputFileToFastDebug)
6-
7-
使用方法
8-
9-
1. 在需要调试的底层库项目安装 NuGet 库 [dotnetCampus.UsingMSBuildCopyOutputFileToFastDebug](https://www.nuget.org/packages/dotnetCampus.UsingMSBuildCopyOutputFileToFastDebug)
10-
11-
1. 编辑底层库项目的 csproj 文件,添加下面代码
12-
13-
```csharp
14-
<PropertyGroup>
15-
<MainProjectPath>主项目的输出文件夹</MainProjectPath>
16-
</PropertyGroup>
17-
```
18-
19-
1. 通过右击底层库属性,点击调试,设置为可执行文件,路径修改为主项目的启动程序。就可以在底层库点击调试运行主项目调试,同时支持打断点和进行二进制兼容的更改
20-
21-
请注意 主项目的输出文件夹 的路径最后使用 `\` 结束,如 `C:\lindexi\doubi\` 如果是将底层库放在其他文件夹,请将 主项目的输出文件夹 修改为实际的文件夹
22-
1+
# Roslyn 让 VisualStudio 急速调试底层库方法
2+
3+
在一个大项目里面调试底层库经常需要重新编译整个项目,本项目提供了在底层库编译完成之后将输出文件复制到主项目的输出文件夹,通过外部项目调试的方式提高调试效率
4+
5+
| Build | NuGet |
6+
|--|--|
7+
|![](https://github.com/dotnet-campus/UsingMSBuildCopyOutputFileToFastDebug/workflows/.NET%20Core/badge.svg)|[![](https://img.shields.io/nuget/v/dotnetCampus.UsingMSBuildCopyOutputFileToFastDebug.svg)](https://www.nuget.org/packages/dotnetCampus.UsingMSBuildCopyOutputFileToFastDebug)|
8+
9+
## 使用方法
10+
11+
### 安装
12+
13+
在需要调试的底层库项目安装 NuGet 库 [dotnetCampus.UsingMSBuildCopyOutputFileToFastDebug](https://www.nuget.org/packages/dotnetCampus.UsingMSBuildCopyOutputFileToFastDebug)
14+
15+
### 配置
16+
17+
配置有两个方法
18+
19+
基础方法:
20+
21+
通过右击底层库属性,点击调试,设置为可执行文件,路径修改为主项目的启动程序。就可以在底层库点击调试运行主项目调试,同时支持打断点和进行二进制兼容的更改
22+
23+
高级方法:
24+
25+
编辑底层库项目的 csproj 文件,添加下面代码
26+
27+
```csharp
28+
<PropertyGroup>
29+
<MainProjectPath>主项目的输出文件夹</MainProjectPath>
30+
</PropertyGroup>
31+
```
32+
33+
请注意 主项目的输出文件夹 的路径最后使用 `\` 结束,如 `C:\lindexi\doubi\` 如果是将底层库放在其他文件夹,请将 主项目的输出文件夹 修改为实际的文件夹
34+
35+
## 原理
36+
37+
在软件运行的时候依然可以移动 dll 或 exe 的路径,而此工具将底层库项目的输出 dll 和 pdb 文件拷贝到主项目的文件夹或 MainProjectPath 设置的文件夹,将原本的dll和pdb重命名,然后通过调试的可执行文件方式启动主项目
38+
39+
此时的主项目将会加载新的dll文件,同时因为存在 pdb 文件也能进去代码调试
40+
41+
通过将原本dll重命名的方式可以解决主项目执行的文件占用问题
42+
43+
此调试方式要求对底层库的更改满足二进制兼容
44+
2345
关于二进制兼容请看 [VisualStudio 通过外部调试方法快速调试库代码](https://blog.lindexi.com/post/visualstudio-%E9%80%9A%E8%BF%87%E5%A4%96%E9%83%A8%E8%B0%83%E8%AF%95%E6%96%B9%E6%B3%95%E5%BF%AB%E9%80%9F%E8%B0%83%E8%AF%95%E5%BA%93%E4%BB%A3%E7%A0%81 )

0 commit comments

Comments
 (0)