MSBuild命令的简单使用
您已经看过
[清空]
    fa-home|fa-star-o
    当前位置:日收域名购买交易_日收站出售交易>日收高权重域名>MSBuild命令的简单使用

    MSBuild命令的简单使用

    原标题:MSBuild 命令的简单使用

    MSBuild命令的简单使用

    独立观察员 2022 年 7 月 7 日

    位置

    VS安装目录下,如:D:Microsoft Visual Studio2022EnterpriseMSBuildCurrentBin

    命令

    MSBuild 命令行参考 - MSBuild | Microsoft Docs(https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild-command-line-reference?view=vs-2022)

    使用 MSBuild.exe 生成项目或解决方案文件时,可以包含几个开关来指定过程的各个方面。

    每个开关都有两种形式:-switch 和 /switch。本文档仅介绍 -switch 形式。开关不区分大小写。如果从 Windows 命令提示符之外的 shell 运行 MSBuild,则开关的参数列表(用分号或逗号分隔)可能需要单引号或双引号,以确保将列表传递到 MSBuild,而不是由 shell 解释。

    语法

    MSBuild.exe [Switches] [ProjectFile]base64解码

    参数

    参数描述
    ProjectFile在指定项目文件中生成目标。如果不指定项目文件,则 MSBuild 会在当前工作目录中搜索以 proj 结尾的文件扩展名并使用该文件。还可以为此参数指定 Visual Studio 解决方案文件。
    开关

    略(见原文)

    示例

    MSBuild.exe MyProject.proj -t:rebuild

    问题1、VS中的生成前事件中参数未被识别的问题

    项目中有如下生成事件,其中使用了 $(SolutionDir) 参数:

    参考《[使用 MSBuild Tools 调用 csproj 项目文件发布网站时 $(SolutionDir) 宏参数值丢失为空的解决方案](https://www.cnblogs.com/VAllen/p/how-to-get-rid-of-solutiondir-when-building-vs-project-from-outside-visual.html)》可知,可以使用 -p 开关来指定参数的值,如下:

    MSBuildD:JenkinsDataworkspaceSrcdesktop.sln -p:SolutionDir=D:JenkinsDataworkspaceSrc

    -p 和 /p 应该是等价的。官网介绍如下:

    2、阻止输出警告信息

    使用如下命令:

    msbuild/p:WarningLevel=0

    关于警告等级:

    0 关闭所有的警告。

    1 仅显示严重警告。

    2 显示 1 级的警告以及某些不太严重的警告,例如有关隐藏类成员的警告。

    3 显示级别 2 警告以及某些不太严重的警告,例如关于始终评估为 true 或 false 的表达式的警告。

    4 默认值 显示所有 3 级警告和普通信息警告。

    示例

    使用 MSBuild 命令编译项目(: 注释的代码部分为devenvbase64解码方式编译),各部分解释看脚本中的中文注释:

    rem v20220705ECHO OFF

    : 以管理员身份运行echo SetAdmin...@echo off>nul2>&1"%SYSTEMROOT%system32cacls.exe""%SYSTEMROOT%system32configsystem"if%errorlevel%NEQ0(gotoUACPrompt)else(gotogotAdmin ):UACPromptecho Set UAC = CreateObject^("Shell.Application"^) >"%temp%getadmin.vbs"echo UAC.ShellExecute"%~s0","","","runas",1>>"%temp%getadmin.vbs""%temp%getadmin.vbs"exit/B:gotAdminifexist"%temp%getadmin.vbs"( del"%temp%getadmin.vbs")pushd"%CD%"CD /D "%~dp0"echo SetAdmin Done.

    : 杀死进程base64解码taskkill /F /IM Main.Gui.exe

    : 设置相关变量set bg_dir=E:Buildexeset src_dir=%~pd0Src:Jenkins 工作空间路径为 % WORKSPACE%:set src_dir=%WORKSPACE%Srcset desktop_dir=%src_dir%desktop

    : 设置编译的环境变量:set PATH="D:Microsoft Visual Studio2022EnterpriseCommon7IDE";%PATH%set PATH="D:Microsoft Visual Studio2022EnterpriseMSBuildCurrentBin";%PATH%

    : 执行编译base64解码ECHO ***************************************** Build desktop *****************************************:devenv %desktop_dir%desktop.sln /rebuild DEBUG:devenv %desktop_dir%desktop.sln /build DEBUG /project %desktop_dir%UIMain.Gui.csprojMSBuild %desktop_dir%UIMain.Gui.csproj -p:WarningLevel=0;SolutionDir=%desktop_dir%ECHO ================================================desktop Done===========================================================ECHO .ECHO .

    : 拷贝文件ECHO Copy desktopxcopy /Y /E /Q /I /exclude:%src_dir%exclude.txt %desktop_dir%Build %bg_dir%desktop

    : 调用 Advanced Installer 打包D:cd D:Advanced Installer16.7binx86advinst.exe /rebuild "E:BuildddPCR.aip"

    pause

    其中存放忽略规则的文件 exclude.txt 的内容为:

    logs.gitignore.xml.pdbdata

    感谢阅读!

    C

    C10 新特性 [调用方参数表达式] 解决了我七年前的困惑base64解码

    【分享】C 字节帮助类 ByteHelper

    C 在自定义的控制台输出重定向类中整合调用方信息

    C 枚举转列表

    .NET

    Windows 服务 同时启动多个服务

    PostSharp 中 AOP 功能的简单使用

    .NET SDK-Style 项目(Core、Standard、.NET5)中的版本号

    将 .NET Framework 项目转换为 .NET Standard 项目

    ASP.NET Core MVC 网站学习笔记

    Unity 容器简单使用方法

    Unity容器依赖注入之属性注入使用备忘

    添加服务引用来使用WebService

    其它

    在 Windows 上搭建配置 Jenkins 然后编译打包 VS 项目

    在香蕉派的树莓派系统上配置 Syncthing 自启动(暨 Linux 软件自启服务配置)

    使用 GB28181.Solution + ZLMediaKit + MediaServerUI 进行摄像头推流和播放

    如何快速剥火腿肠皮?

    使用 Floccus 插件和 坚果云 同步 Chrome 类浏览器 书签

    Docker Hub 使用初探

    『独立观察员』个人观影 Ⅱ

    VisualStudio 使用 DialogPage 存储配置信息base64解码

    分页SQL语句返回搜狐,查看更多

    责任编辑:

    MSBuild命令的简单使用》由《日收域名购买交易_日收站出售交易》整理呈现,请在转载分享时带上本文链接,谢谢!

    支持Ctrl+Enter提交
    日收域名购买交易_日收站出售交易 © All Rights Reserved.  Copyright Your WebSite.Some Rights Reserved.
    Powered by 日收站出售 Themes by 日收域名出售