roslyn compiler not copied to AspnetCompileMerge folder using msbuild

后端 未结 3 1603
栀梦
栀梦 2021-01-11 11:21

I have a .NET MVC project that I\'m trying to deploy using Jenkins.

I had been letting Jenkins run msbuild, then copying the resulting files out using RoboCopy. I wa

相关标签:
3条回答
  • 2021-01-11 11:44

    Just putting this here, because I spent two days trying to resolve this same issue (roslyn csc.exe not copied), but none of these answers solved my problem.

    It turns out that Microsoft.CodeDom.Providers.DotNetCompilerPlatform 1.0.6 (and 1.0.7) is broken. Downgrade to 1.0.5.

    I was getting the same errors as everyone else here, but I'm using VS 2017, and both local WebDeploy as well as AzureDeploy were broken (no csc.exe found). I tried all the suggestions that I could find on the internet (most of them redirect back to this SO post) but nothing worked until I downgraded to 1.0.5.

    So I hope this is helpful to anyone who is struggling and has just recently upgrade to 1.0.6!

    See: https://github.com/aspnet/RoslynCodeDomProvider/issues/13 and https://github.com/dotnet/roslyn/issues/21340

    0 讨论(0)
  • 2021-01-11 11:44

    So, the workaround I'm using for now (which I don't entirely like), is just to remove the dependencies on the Compilers and CodeDOM Compilers packages. I also had to clear out the references in the .csproj and web.config files. That involved removing those packages from a shared assembly as well.

    This will break the project for people still using Visual Studio 2013, which I don't like, but it builds on my Jenkins host now, which I do like. If anyone has a better solution, I'd be happy to hear it.

    0 讨论(0)
  • 2021-01-11 11:44

    So yeah, I have this problem too with VS2017 & VS2019 and Microsoft.CodeDom.Providers.DotNetCompilerPlatform2.0.1 too. Did a lot of troubleshoooting msbuild and digging deep and trying to do my own workarounds and the changes in build file that just did nothing, but that didn't seem right at all. So I started looking in a different direction.

    What I discovered was I couldn't build a .csproj directly and have either the nuget targets in Microsoft.CodeDom.Providers.DotNetCompilerPlatform get run by msbuild, or my own custom ones.

    However using msbuild with the .sln with a target of myproj:Rebuild made everything work.

    0 讨论(0)
提交回复
热议问题