VS2010由ReSharper引起的构建异常;未找到SetEnvironmentVariable任务

时间:2017-01-05 07:46:02

标签: visual-studio-2010 exception build resharper

更新后我的Windows 7出现问题,安全模式和恢复模式都无法解决问题。我被迫完全重新安装Windows。要在我的项目上开发,我需要Visual Studio 2010。

我总是安装了ReSharper并习惯了它的功能,所以我也安装了它。

一切设置我尝试构建我的解决方案但遇到了问题...... img1 (带下划线的文件可以在这里找到:https://up.zone/aj

经过几个小时试图解决问题后,我发现ReSharper是问题所在。如果没有安装ReSharper,我可以完美地构建解决方案。即使所有功能都已关闭且服务暂停,安装它也会导致上图中的这些错误显示在构建中。

我设法在他的帖子上按照Reddit用户的说明解决了三分之二的错误:https://up.zone/ag

现在我还有一个例外,我无法想象如何解决。我真的找不到任何有用的谷歌搜索,这意味着你们是我最后的希望。我真的不想在没有ReSharper的情况下重新开发。

这是一个: img2

有什么想法吗?

谢谢!

更新1

我发现问题必须位于NuGet.targets文件中,该文件位于我们解决方案的.nuget文件夹中。

我设法根据this post的建议找到了解决方法,我现在能够毫无错误地构建解决方案。

总结一下,从* .csproj文件中删除此行

  

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

虽然这有效,但我认为这不是解决方案。这条线是我假设的原因。任何对NuGet有深入了解的人都可能知道如何正确解决这个问题?

更新2

我发现只要您重新加载解决方案/项目,该行就会再次添加。此外,如果您有某些依赖项nuget应该为您下载 - 它不会,因为进行该​​调用并处理它的行被删除。

我现在处于一个我知道问题出在哪里但不是为什么会引起问题的地方。

ReSharper是否会改变NuGet的行为方式?据我所知,由于ReSharper,NuGet.targets文件中没有任何内容被添加或删除。

1 个答案:

答案 0 :(得分:1)

https://youtrack.jetbrains.com/issue/RSRP-462271上还有一个关于此主题的报告。

到目前为止最好的猜测是,这是由于同时发生的两件事:(a)在MSBuild XML文件而不是DLL中使用C#源代码形式的MSBuild任务,以及(b)发布了一些MSBuild开源DLL使用最新版本的ReSharper来满足自己的项目文件处理需求。

源代码在MSBuild运行期间被编译成任务DLL(不是很常见的事情; Roslyn会这样做而不是运送DLL?认真吗?)。在Visual Studio中构建(而不是使用msbuild.exe)时,将使用进程内MSBuild实例,它将在与ReSharper相同的appdomain中运行,因此它使用公共程序集引用resoluiton。如果它不太准确,那么它可能会通过短名称意外地选择错误的DLL版本,这会破坏任务编译(这是一个单独的错误,可能会被缓存掉)然后导致任务 - 稍后在运行时找不到错误(在这种情况下为SetEnvironmentVariable task not found)。

我已经对基于源代码的任务的示例解决方案进行了测试,并且无法将其破坏。所以琐碎的案例都可以。从来没有听过原始记者的回复,所以没有进一步的进展。

现在我已经得到一个暗示,这是Visual Studio 10(该机器上安装的任何其他VS版本?)和maaaaybe它的Roslyn任务。我们可能确定您是否使用更详细的日志运行MSBuild(通过在工具|选项|项目和解决方案|构建和运行| MSBuild项目构建输出详细程度至少详细设置日志选项)并仅构建错误项目。 / p>

我还会尝试使用VS10并使用新数据更新此回复。