我正在玩弄对Roslyn的一些更改,但不幸的是,当我运行VisualStudioSetup.Next
时,即使未修改的解决方案也会崩溃,尝试加载MS程序集时出错。所以我做了一些简单的更改,并用新版本替换了我的机器现有的二进制文件和配置文件。在C:/Program Files (x86)/MSBuild/bin and Windows/Microsoft.NET/Framework64
进行了更改。用新的Roslyn构建替换c#编译器
替换CSC,VBCSCompiler,DLL和配置文件会导致csc.exe
在任何构建上抛出错误。它抱怨该清单指定了一个不同版本的CodeAnalysis.CSharp
DLL。它没有给出文件或名称的路径。我用新版本替换了在上述文件夹中找到的配置和DLL。我需要什么文件才能取代它才能正常工作?
我为CSC的所有实例搜索了整个驱动器,并确保所有的配置都指定了DLL的新版本,所以我不知道现在在哪里看。
我知道可以将参数传递给MSBuild,或者向csproj文件添加一个节来为编译器二进制文件指定一个目录,但是我希望获得胜利。
编辑:所以我决定只更改我的版本的版本号。通过VS中的组装属性执行它会导致构建失败。我试图使用MSBuild,但它在每个单个项目中都会失败,并且出现此错误:
"F:\Git\Repos\roslyn\src\Compilers\CSharp\csc\csc.csproj" (default target) (1) ->
F:\Git\Repos\roslyn\build\Targets\Versions.props(42,5):
error MSB4184: The expression ""1".Substring(3)" cannot be evaluated.
startIndex cannot be larger than length of string.
Parameter name: startIndex F:\Git\Repos\roslyn\src\Compilers\CSharp\csc\csc.csproj]
它在VS中生成良好。
的MSBuild PARAMS:/p:OfficialBuild=true /p:BuildNumber=1.3.1.60616 /p:Configuration=Release
你在做什么听起来有点脏。 –
@MathiasLykkegaardLorenzen当然。我的团队喜欢拉一些恶作剧,使他们难以扭转。这就是为什么我不喜欢修改构建参数来使用新的编译器。 –
你试图达到什么听起来很有趣,但请让我们知道你的目标是什么。您是否试图替换Visual Studio安装的csc.exe?所以,当你在Visual Studio中编译更新后的csc,exe文件被使用? –