当前位置: 首页 > 知识库问答 >
问题:

使 MSBuild 在 VS15 预览版中使用新的 Roslyn 编译器

阮俊弼
2023-03-14

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

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

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

我尝试替换的文件:Microsoft.CodeAnalysis.dllMicrosoft.CodeAnalysis.Csharp.dllcsc.exe

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

共有3个答案

赖俊
2023-03-14

如果您只是想试用Roslyn的构建,您可以通过在VS15中打开Roslyn.sln,然后运行Roslyn项目(无论是否调试)来做到这一点。它将启动一个新的VS15实例,该实例使用您的Roslyn构建。

欧阳声
2023-03-14

但是,M0sa的答案可能有效,这只会为您提供启用MSBuild的构建。如果你也想在VS中测试它,那么你可以按照Roslyn自己的文档进行操作。该页面告诉您如何替换Visual Studio中的“智能感知”(VisualStudioSetup项目符号)和Ctrl-Shift-B“生成解决方案”以实际运行您的解决方案(CompilerExtension)。

尉迟子民
2023-03-14

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

我发现msbuild命令行(例如Start

msbuild /p:CscToolPath=<PathToYourRoslynBinDir>`

如果您更频繁地执行此操作,您也可以在. csproj中执行此操作:

<PropertyGroup>
    <CscToolPath>C:\your\roslyn\bin</CscToolPath>
</PropertyGroup>

显然,这只会影响构建,而不会影响Visual Studio或它的智能感知。要实现这一点,您需要遵循Roslyn repo中的《在Visual Studio中尝试您的更改》指南。您必须在Roslyn解决方案中构建一个VSIX项目。运行其中一个项目会启动一个Visual Studio的实验实例,您可以在其中进行修改。

 类似资料:
  • 问题内容: 我有一个要使用Jenkins部署的.NET MVC项目。 我一直在让Jenkins运行msbuild,然后使用RoboCopy将结果文件复制出来。我想切换为仅使用发布个人资料。发布配置文件在使用Visual Studio的本地计算机上运行正常,但是在Jenkins主机上,使用msbuild失败。 它给出的错误是 ASPNETCOMPILER:错误ASPRUNTIME:找不到路径“ C:

  • 我有一个 .NET MVC 项目,我正在尝试使用 Jenkins 进行部署。 我一直让 Jenkins 运行 msbuild,然后使用 RoboCopy 复制生成的文件。我想切换到仅使用发布配置文件。发布配置文件在使用Visual Studio的本地计算机上运行良好,但在Jenkins主机上使用msbuild失败。 它给出的错误是 ASPNETCOMPILER:错误ASPRUNTIME:找不到路径

  • 概述 编译选项可以在使用MSBuild的项目里通过MSBuild属性指定。 例子 <PropertyGroup Condition="'$(Configuration)' == 'Debug'"> <TypeScriptRemoveComments>false</TypeScriptRemoveComments> <TypeScriptSourceMap>true</TypeS

  • 尝试从我的Web应用程序中使用编译的JSP,但我不知道如何为我的确定合适的类名,我将文件放在 每当我尝试使用/context root/dbx调用我的应用程序时,我都会得到: 我的网站。xml包含基本的servlet映射 如果我更改<代码> 错误500:java。lang.NoClassDefFoundError:\u db(错误名称:com/ibm/\u jsp/\u db) 运行 /opt/I

  • 使用命令行编译器 注解 这一节并不适用于 solcjs solc 是 Solidity 源码库的构建目标之一,它是 Solidity 的命令行编译器。你可使用 solc --help 命令来查看它的所有选项的解释。该编译器可以生成各种输出,范围从简单的二进制文件、汇编文件到用于估计“gas”使用情况的抽象语法树(解析树)。如果你只想编译一个文件,你可以运行 solc --bin sourceFil

  • 工具链介绍 gxnpuc 用于把模型文件编译成能在 NPU 上运行的 npu 文件。 usage: gxnpuc [-h] [-V] [-L] [-v] [-m] [-c CMD [CMD ...]] [config_filename] NPU Compiler positional arguments: config_filename config file optiona