我如何以编程方式从运行.exe的机器获取MSBuild的路径?
我可以从环境中获取.NET版本但是有没有办法为.NET版本获取正确的文件夹?
我正在使用 VS2019 社区,并且已经设置了预构建事件:
msbuild "$(ProjectPath)" /t:Clean
Run Code Online (Sandbox Code Playgroud)
我收到错误:
'MSBuild' is not recognized as an internal or external command,
operable program or batch file
Run Code Online (Sandbox Code Playgroud)
这怎么可能?这个命令不应该内置到visual studio中吗?
我已经检查过这个并尝试设置路径环境,但它没有帮助。
在 VS2019 中,有没有其他人对这个命令有同样的问题?
我们正在运行一个Team City Build Server,并且希望编译一个Visual C ++项目。到目前为止,这很容易,因为我已经使用Windows SDK设置了Windows Build Agent,但是我们没有解决方案/项目文件。
而是使用CMake创建项目文件。CMake似乎有点笨(当未安装Visual Studio时无法生成解决方案),但是通过一些技巧,我可以做到这一点。然后可以使用MSBuild构建该解决方案。
问题来了。为了自动运行,我需要调用Windows SDK的SetEnv.cmd。而且我似乎无法自动找到它。它位于Windows SDK的bin子目录中,但是bin和root都不在路径中,并且%mssdk%环境变量由SetEnv.cmd设置,并且事先不可用!
将Windows SDK \ bin目录添加到PATH会导致SetEnv.cmd不再起作用(退出时显示类似The x86 compilers are not currently installed和的消息Jump target Set_x86 not found。
开始菜单链接正在使用Windows SDK目录作为工作目录来调用SetEnv.cmd。但是,如果我将根目录添加到PATH,则Bin \ SetEnv.cmd不可用。
如何自动找到SetEnv.cmd?即使将环境变量设置为setenv.cmd的完整路径也不起作用,并且当我将%mssdk%定义为sdk目录时,则调用%mssdk%\ bin \ SetEnv也不起作用。我还尝试定义%mssdk%,然后定义cd%mssdk%,然后调用bin \ SetEnv。此外,在所有这些情况下都找不到编译器。如果我在命令行上手动cd到根目录或bin目录,然后调用SetEnv.cmd,它也将不起作用。
虽然开始菜单链接可以正常工作。
作为记录,我目前的解决方案如下:
我创建了一个MSBuild文件,该文件在命令行上使用CMake创建了解决方案文件,然后使用MSBuild任务调用了创建的解决方案。可以从TeamCity轻松构建MSBuild文件,尽管我需要一些其他技巧来满足CMake愚蠢的寻找编译器的麻烦,尽管我不会调用它。并不是很令人满意,但是可以。
我有桌面的VS Express (2012) .我还获得了NMAKE.EXE计划吗?
http://msdn.microsoft.com/en-us/library/dd9y37ha.aspx - Microsoft程序维护实用程序(NMAKE.EXE)是一个基于描述文件中包含的命令构建项目的工具.
当我在运行:make后运行时:compiler msvc,shell返回消息" 'nmake'不被识别为内部或外部命令,".如何使用这些命令编译C++程序?NMAKE.EXE工具是否与'nmake'命令有关系?
http://msdn.microsoft.com/en-us/library/wea2sca5(v=vs.90).aspx - MSBuild是Microsoft和Visual Studio的新构建平台.
http://msdn.microsoft.com/en-us/library/dd293626.aspx - 您可以使用MSBuild工具从命令提示符构建Visual C++应用程序.构建过程由您可以创建和编辑的项目文件(.vcxproj)中的信息控制.项目文件根据构建阶段,条件和事件指定构建选项.
我是否因为我的VS Express for Desktop而获得了MSBuild工具?当我在运行后使用时,shell返回消息"'msbuild'不被识别为内部或外部命令,".是否msbuild.vim有关系的MSBuild工具?:make:compiler msbuild
的维护者msbuild.vim说,"我做了脚本使用.NET ...我不知道它是否会为C++编译工作的C#项目......"
如何通过在Vim :compiler msbuild之前运行来编译:make?
在这个问题上,编译程序(例如C++源文件)只有两个问题,请回答详细说明:
:compiler msvc?:compiler msbuild?