此功能需要 Microsoft.Testing.Extensions.HotReload NuGet 包。
小窍门
使用 Microsoft.Testing.Platform.MSBuild (由 MSTest、NUnit 和 xUnit 运行程序以可传递方式包含),安装其 NuGet 包时会自动注册此扩展 ,无需更改代码。 只有在通过设置 <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>禁用自动生成的入口点时,才需要本文中指定的手动注册。
手动注册
var builder = await TestApplication.CreateBuilderAsync(args);
builder.TestHost.AddHotReloadProvider();
热重载
热重载允许你在应用程序运行时修改应用的托管源代码,而无需手动暂停或设置断点。 只需在应用运行时进行受支持的更改,然后在 Visual Studio 中选择 “应用代码更改 ”按钮即可应用编辑。
注释
当前版本仅限于仅支持“控制台模式”中的热重载。 目前不支持在 Visual Studio 或 Visual Studio Code 的测试资源管理器中热重载。
注释
该包附带严格的 Microsoft.Testing.Platform 工具许可证。 https://www.nuget.org/packages/Microsoft.Testing.Extensions.HotReload/1.0.0/License 提供完整的许可证。
可以通过将 TESTINGPLATFORM_HOTRELOAD_ENABLED 环境变量设置为 "1" 轻松启用热重载支持。
对于 SDK 样式的项目,可以在"TESTINGPLATFORM_HOTRELOAD_ENABLED": "1"文件的environmentVariables节中添加launchSettings.json。 以下代码片段显示了一个示例文件:
{
"profiles": {
"Contoso.MyTests": {
"commandName": "Project",
"environmentVariables": {
"TESTINGPLATFORM_HOTRELOAD_ENABLED": "1"
}
}
}
}