有没有办法直接编译.vbproj或.csproj项目文件,就像Visual Studio一样?
在Visual Studio中编译时,"输出"窗口显示对编译器的实际调用,通常如下所示:
vbc.exe [一堆选项] [looooong .vb文件列表]
我想以编程方式调用"某事"来获取.vbproj文件并执行Visual Studio所做的任何操作来生成这个长命令行.我知道我可以自己解析.vbproj并生成该命令行,但我宁愿保存自己所有的逆向工程和反复试验......
有没有工具可以做到这一点?我宁愿能够在没有安装Visual Studio的情况下在机器上完成它.但是,如果有一种方法可以使用某些参数来调用Visual Studio,那么那也没关系.
我简要地看了一下MSBuild,看起来它的工作原理是我必须特别制作的.proj项目文件,并且我每次将文件添加到.vbproj文件时都需要更新.(我确实简要地看了一下,所以我很可能错过了一些重要的事情)
任何帮助将不胜感激
我有三个Visual Studio解决方案.第一个配置为构建为Release,另外两个设置为构建为Debug.
当运行一个简单的MSBuild脚本显式声明要构建的配置(Debug)时,第一个项目仍然构建为Release.
示例脚本:
<Target Name="Build">
<ItemGroup>
<ProjectToBuild Include="$(SolutionsPath)\Solution1.sln"/>
<ProjectToBuild Include="$(SolutionsPath)\Core\Solution2.sln"/>
<ProjectToBuild Include="$(SolutionsPath)\UI\Solution3.sln"/>
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)"
Targets="Rebuild"
Properties="Configuration=Debug;Platform=Any CPU"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
我已经尝试了以上的变体,如下所示,但我总是得到相同的结果.
<Target Name="Build">
<ItemGroup>
<ProjectToBuild Include="$(SolutionsPath)\Solution1.sln">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
<ProjectToBuild Include="$(SolutionsPath)\Core\Solution2.sln">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
<ProjectToBuild Include="$(SolutionsPath)\UI\Solution3.sln">
<Properties>Configuration=Debug</Properties>
</ProjectToBuild>
</ItemGroup>
<MSBuild Projects="@(ProjectToBuild)"
Targets="Rebuild"
Properties="Platform=Any CPU"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
我注意到有一个类似的问题,MSBuild任务 - 构建失败,因为一个解决方案是在发布而不是调试中构建的,但这是特定于TFS和Teambuild.我正在谈论纯MSBuild与从头开始创建的简单项目文件.
我该如何解决这个问题?