c# - 将 Roslyn 代码重构作为 NuGet 包发送

标签 c# nuget roslyn

安装 .NET Compiler Platform SDK 时您将获得用于创建“代码修复分析器 (NuGet + VSIX)”和“代码重构 (VSIX)”的 Visual Studio 模板。

为什么没有用于使用 NuGet 进行代码重构的模板(例如“代码重构(NuGet + VSIX)”)?
甚至可以从 NuGet 包添加代码重构提供程序(通过手动创建 NuGet 包)?
在每个项目的基础上安装代码重构提供程序没有意义吗?

编辑: 我的用例是一个代码重构,它从非类型化数据(如 JSON)中生成 C# 类型。这基本上就是 F# 类型的提供程序(尽管它们当然更强大)。这意味着用户创建了一个类似下面的类

[JsonProvider("http://example.com/data.json")]
public class ExampleData
{
}

并且重构使用从属性中的 url 获取的示例数据中的属性填充它:

[JsonProvider("http://example.com/data.json")]
public class ExampleData
{
    public string Property1 { get; private set; }
    public int Property2 { get; private set; }

    public void Load(Uri uri) { ... }
    public void FromData(string data) { ... }
    ...
}

我不想创建分析器的原因是用户应该能够决定何时更新 C# 类型。因为我真的不知道 URL 指向的数据什么时候发生变化。而且我不想用无法摆脱的波浪线来惹恼用户。

最佳答案

目前不支持通过 NuGet 分发重构,但我们希望在将来添加。

关于c# - 将 Roslyn 代码重构作为 NuGet 包发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33118238/

相关文章:

c# - 从特定索引处的字符串数组中删除字符串

javascript - 在 ASP.NET MVC 中填充下拉列表的正确方法

visual-studio - 如何在普通 PowerShell session (不在 Visual Studio 中)运行 Nuget PowerShell cmdlet Install-Package?

tfs - 带有 TFS 的每个分支的 Nuget 存储库

c# - 如何获取所有用某些属性注释的属性?

c# - 无法在 Roslyn 的新 nuget 中获取方法 SyntaxTree.ParseFile?

c# - 四舍五入到下一个数字

c# - 蛮力- c#

.net - nuget中功能分支的版本控制策略

nuget - Visual Studio 2017网站菜单 "Enable C# 6/VB 14"无法加载Nuget包