【问题标题】:Add "well-formatted" Assembly Reference with Roslyn使用 Roslyn 添加“格式良好”的程序集参考
【发布时间】:2016-11-10 08:28:32
【问题描述】:

简而言之,我一直在研究一种工具,它可以使用 .NET 编译器平台修改解决方案中的所有类。为此,我必须为所有项目添加程序集引用。

目前,我使用这行代码:

var addedRef= MetadataReference.CreateFromFile(@"d:\Stuff\MyAssembly.dll")
                        .WithProperties(new MetadataReferenceProperties(MetadataImageKind.Assembly));

var sol = newSolution.AddMetadataReference(projectId, addedRef);

但不幸的是,它会在 .csproj 文件中生成以下条目:

<Reference Include="..\Stuff\MyAssembly.dll" />

我想在我的 .csproj 中看到这个:

<Reference Include="MyAssembly.dll" />

当然有一个讨厌的解决方法:将 .csproj 文件解析为 xml 并手动插入......但我真的想避免这个,因为有 .NET 编译器平台。

提前感谢您的帮助!

【问题讨论】:

    标签: c# .net visual-studio-2015 roslyn


    【解决方案1】:

    Roslyn 的东西对 MSBuild 表示相当不关心——它并没有试图成为执行此操作的系统。最好只使用 XML 或 MSBuild API 或其他东西。

    【讨论】:

    • 我刚刚在 Roslyn 的 GitHub 页面上发现了这个问题:github.com/dotnet/roslyn/issues/5959 无论如何,感谢您的回答。我将做 XML 方式的解决方法。这将在未来得到解决。
    猜你喜欢
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-01-23
    相关资源
    最近更新 更多