vs脚本自动复制生成的文件至指定的位置

1,目标文件不存在时自动创建
text 复制代码
if not exist "$(SolutionDir)lib\" mkdir "$(SolutionDir)lib\"

关键参数说明

  • if not exist‌

    • ‌功能‌:检查指定路径是否存在。
    • ‌作用‌:若路径不存在,则执行后续命令(mkdir)。
    • ‌语法‌:if not exist "路径" 命令。
  • **$(SolutionDir)‌ **

    • 功能‌:Visual Studio 宏变量,表示解决方案目录(如 MySolution\)。
    • ‌作用‌:动态获取解决方案根路径。
    • ‌来源‌:MSBuild 宏定义(MSBuild.exe 文档)。
  • ‌mkdir‌

    • ‌功能‌:创建目录。
    • ‌作用‌:若目录不存在,则创建 lib 文件夹。
    • ‌语法‌:mkdir "路径"。
  • 执行流程

    复制代码
      ‌路径解析‌
          $(SolutionDir) → MySolution\(示例)
          ‌完整路径‌:MySolution\lib\
      ‌条件判断‌
          若 MySolution\lib\ 不存在,则执行 mkdir 命令。
          若目录已存在,命令无操作(避免重复创建)。
2,自动复制生成的dll文件
复制代码
copy /y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)lib\$(ProjectName).dll"

关键参数说明

  • ‌copy‌

    • ‌功能‌:用于复制文件的命令行工具。
    • ‌来源‌:Windows 命令提示符(CMD)内置命令。
  • /y‌

    • ‌功能‌:强制覆盖目标文件,跳过确认提示。
    • ‌作用‌:当目标文件已存在时,直接覆盖而不询问用户确认。
    • ‌来源‌:CMD 命令参数标准用法。
  • ‌"$(TargetDir)$(ProjectName).dll"‌

    $(TargetDir)‌

    功能‌:Visual Studio 宏变量,表示项目输出目录(如 bin\Debug\)。

    作用‌:动态获取项目编译后的 DLL 文件路径。

    ‌来源‌:MSBuild 宏定义(MSBuild.exe 文档)。

  • *$(ProjectName)‌

    ‌功能‌:Visual Studio 宏变量,表示项目名称(如 MyProject)。

    ‌作用‌:动态获取项目名称,确保文件名正确。

    ‌来源‌:MSBuild 宏定义(MSBuild.exe 文档)。

  • ‌".dll"‌

    ‌作用‌:指定文件扩展名,确保复制 DLL 文件。

    ‌"(SolutionDir)lib\$(ProjectName).dll"‌ ‌(SolutionDir)‌
    ‌功能‌:Visual Studio 宏变量,表示解决方案目录(如 MySolution\)。
    ‌作用‌:动态获取解决方案根路径。
    ‌来源‌:MSBuild 宏定义(MSBuild.exe 文档)。
    ‌"lib"‌
    ‌作用‌:指定子目录名,完整路径为 MySolution\lib\。
    ‌$(ProjectName)‌
    ‌作用‌:动态获取项目名称,确保目标文件名正确。
    ‌".dll"‌
    ‌作用‌:指定文件扩展名,确保复制 DLL 文件。

相关推荐
大王小生19 小时前
说说CSV文件和C#解析csv文件的几种方式
人工智能·c#·csv·csvhelper·csvreader
LongtengGensSupreme20 小时前
C# 中监听 IPv6 回环地址----HttpListener
c#·ipv6·httplistener
zzcufo1 天前
多邻国学习笔记第五阶段第10-11部分
笔记·学习·c#
easyboot1 天前
C#使用pythonnet简单示例
开发语言·python·c#
刘欣的博客1 天前
c# winform 控件dock 停造位置、摆放顺序问题
c#·winform·dock停靠问题
Java程序员威哥1 天前
Arthas+IDEA实战:Java线上问题排查完整流程(Spring Boot项目落地)
java·开发语言·spring boot·python·c#·intellij-idea
easyboot1 天前
C#通过sqlsugar插入数据到postgresql
开发语言·c#
阿蒙Amon1 天前
C#每日面试题-break、continue和goto的区别
java·面试·c#
mudtools1 天前
C#中基于Word COM组件的数学公式排版实践
开发语言·c#·word
阿蒙Amon1 天前
C#每日面试题-简述this和base的作用
java·面试·c#