相关疑难解决方法(0)

在没有Visual Studio的情况下编译.vbproj或.csproj项目文件

有没有办法直接编译.vbproj或.csproj项目文件,就像Visual Studio一样?

在Visual Studio中编译时,"输出"窗口显示对编译器的实际调用,通常如下所示:

vbc.exe [一堆选项] [looooong .vb文件列表]

我想以编程方式调用"某事"来获取.vbproj文件并执行Visual Studio所做的任何操作来生成这个长命令行.我知道我可以自己解析.vbproj并生成该命令行,但我宁愿保存自己所有的逆向工程和反复试验......

有没有工具可以做到这一点?我宁愿能够在没有安装Visual Studio的情况下在机器上完成它.但是,如果有一种方法可以使用某些参数来调用Visual Studio,那么那也没关系.

我简要地看了一下MSBuild,看起来它的工作原理是我必须特别制作的.proj项目文件,并且我每次将文件添加到.vbproj文件时都需要更新.(我确实简要地看了一下,所以我很可能错过了一些重要的事情)

任何帮助将不胜感激

vb.net compilation csproj visual-studio

23
推荐指数
2
解决办法
3万
查看次数

MSBuild任务配置属性

我有三个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与从头开始创建的简单项目文件.

我该如何解决这个问题?

msbuild msbuild-task

19
推荐指数
3
解决办法
4万
查看次数