让 MSBuild 在 VS15 Preview 中使用新的 Roslyn 编译器

Sem*_*ble 1 .net c# visual-studio roslyn roslyn-code-analysis

我最近刚刚研究了 Roslyn 编译器的东西,我想知道一些可能性。我正在尝试使用features/tuples分支从 Roslyn 存储库构建 Roslyn 编译器,并替换VS15Preview\MSBuild\15.0\Bin文件夹中所需的 DLL 。但是当我替换 DLL 并构建控制台应用程序项目时,我收到以下错误消息

严重性代码描述项目文件行抑制状态

错误 无法运行指定的任务可执行文件“csc.exe”。无法加载文件或程序集“Microsoft.CodeAnalysis.CSharp,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

我尝试替换的文件:Microsoft.CodeAnalysis.dll,Microsoft.CodeAnalysis.Csharp.dll和csc.exe.

是否可以为 C# 构建自定义 Roslyn 编译器并在 VS15 预览版中替换它?

m0s*_*0sa 5

一种方法是将CscToolPath msbuild 变量设置为新的 roslyn 构建的 bin 目录。

我发现 msbuild 命令行(例如开始 > 开发人员命令提示符)最方便。您可以cd在运行时进入任何解决方案目录:

msbuild /p:CscToolPath=<PathToYourRoslynBinDir>`
Run Code Online (Sandbox Code Playgroud)

.csproj如果你经常这样做,你也可以在 a 里面做:

<PropertyGroup>
    <CscToolPath>C:\your\roslyn\bin</CscToolPath>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

显然,这只会影响构建,而不影响 Visual Studio 或它的智能感知。要连接它,您需要按照Roslyn 存储库中的“在 Visual Studio 中尝试更改”指南进行操作。您必须在 Roslyn 解决方案中构建 VSIX 项目之一。运行其中一个项目会启动 Visual Studio 的实验性实例,您可以在其中进行更改。