C# 使用MSBuild时更改路径的其他方法

C# 使用MSBuild时更改路径的其他方法,c#,msbuild,C#,Msbuild,我想使用MSBuild生成解决方案文件,但存在一个问题。我的MSBuild文件位于C:\WINDOWS\Microsoft.NET\Framework\v3.5\。因此,现在只有当我将整个解决方案和项目文件放在这个路径中时,我才能编译解决方案。但是我不能将所有的解决方案和项目文件都保存在C:\WINDOWS\Microsoft.NET\Framework\v3.5\中。我的解决方案文件的位置可能在我的pc或TFS中的任何位置,我必须使用MSBuild来编译它 我在某个论坛上看到,我必须在该位置的

我想使用MSBuild生成解决方案文件,但存在一个问题。我的MSBuild文件位于C:\WINDOWS\Microsoft.NET\Framework\v3.5\。因此,现在只有当我将整个解决方案和项目文件放在这个路径中时,我才能编译解决方案。但是我不能将所有的解决方案和项目文件都保存在C:\WINDOWS\Microsoft.NET\Framework\v3.5\中。我的解决方案文件的位置可能在我的pc或TFS中的任何位置,我必须使用MSBuild来编译它

我在某个论坛上看到,我必须在该位置的regedit中更改路径 HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\3.5,但它仍然保持静态。如果要执行TFS中的解决方案文件,则必须再次更改regedit中的路径


有什么替代方法吗?

我的系统上也有msbuild.exe。这很好,因为这是VS或构建工具的任务。通常情况下,您可以在path环境中使用C:\WINDOWS\Microsoft.NET\Framework\v3.5\运行生成脚本,或者您的生成解决方案知道在哪里可以找到它。通常,只有在重新定位到其他框架版本(如4.0)时,才必须更改msbuild.exe。要在干净的机器上进行构建,应正确设置先决条件。因此,不需要在存储库中包含msbuild.exe。这可能会被认为是不好的做法。您是否有任何原因,为什么要对msbuild.exe进行版本控制?

在使用msbuild时,您的解决方案实际上是如何生成的?您的意思是问在使用msbuild时,谁在实际生成您的解决方案?我已将环境变量设置为C:\WINDOWS\Microsoft.NET\Framework\v3.5\现在它正在工作。谢谢