如何将文件添加到解决方案文件夹?

2023-12-31

我正在使用以下脚本回答here https://stackoverflow.com/questions/47628034/how-to-create-a-solution-folder-for-a-solution-in-visual-studio-dynamically使用 Powershell 脚本在解决方案中创建解决方案文件夹。

Function AddFolderToSolution($folderName, $solutionFile)
{
   $solutionFolderGuid = "{2150E333-8FDC-42A3-9474-1A3956D46DE8}"
   $content = [System.IO.File]::ReadLines($solutionFile)
   $lines = New-Object System.Collections.Generic.List[string]
   $lines.AddRange($content)
   $index = $lines.IndexOf("Global")
   $guid = [System.Guid]::NewGuid().ToString().ToUpper()
   $txt = "Project(`"$solutionFolderGuid`") = `"$folderName`", `"$folderName`", `"$guid`""
   $lines.Insert($index, $txt)
   $lines.Insert($index+1, "EndProject")
   [System.IO.File]::WriteAllLines($solutionFile, $lines)
}

AddFolderToSolution "NewFolder10" "D:\Solution1.sln"

现在我想将一些文件复制到解决方案文件夹(NewFolder10)中。我如何使用 PowerShell 来做到这一点?


解决方案文件夹不是物理文件夹,您想要放入的文件解决方案文件夹应该存在于某处,您只需将对这些文件的引用添加到您的解决方案文件中。

这些解决方案项目应添加为ProjectSection(SolutionItems) = preProject在解决方案文件中,具有这种格式relative path to file = relative path to file.

例如,我想您想添加一个名为的解决方案文件夹SolutionItems并将 file1.txt 和 file2.txt 放入该解决方案文件夹中。然后,如果这些文件存在于物理文件夹中,例如SomeFolder在解决方案文件旁边,您应该将此文本添加到解决方案文件中:

Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionItems", "SolutionItems", "B73A0302-952E-42D6-925D-ABCB95684477"
    ProjectSection(SolutionItems) = preProject
        ..\SomeFolder\file1.txt = ..\SomeFolder\file1.txt
        ..\SomeFolder\file2.txt = ..\SomeFolder\file2.txt
    EndProjectSection
EndProject

Example

这是一种将文件从目录复制到名为的文件夹的方法SolutionItems您的解决方案附近的文件夹。然后添加一个解决方案文件夹 named SolutionItems(与物理文件夹相同的名称只是为了清楚起见)并将这些复制的文件添加为解决方案项目:

Function AddFolderToSolution($folderPath, $solutionFile)
{
    $solutionPath = Split-Path -Parent -Path $solutionFile
    $folderName = "SolutionItems"
    $destination = Join-Path $solutionPath $folderName   
    $solutionFolderGuid = "{2150E333-8FDC-42A3-9474-1A3956D46DE8}"
    $content = [System.IO.File]::ReadLines($solutionFile)
    $lines = New-Object System.Collections.Generic.List[string]
    $lines.AddRange($content)
    $index = $lines.IndexOf("Global")
    $guid = [System.Guid]::NewGuid().ToString().ToUpper()
    $range = New-Object System.Collections.Generic.List[string]
    $range.Add(
        "Project(`"$solutionFolderGuid`") = `"$folderName`", `"$folderName`", `"$guid`"")
    $range.Add("`tProjectSection(SolutionItems) = preProject")
    New-Item -Path $destination -ItemType Directory -Force
    Get-ChildItem -Path $folderPath -File | Copy-Item -Destination $destination -Force
    Get-ChildItem -Path $destination -File| ForEach-Object {
        $itemName = Split-Path -Leaf -Path $_.FullName
        $range.Add("`t`t..\$folderName\$itemName = ..\$folderName\$itemName")
    }
    $range.Add("`tEndProjectSection")
    $range.Add("EndProject")
    $lines.InsertRange($index, $range)
    [System.IO.File]::WriteAllLines($solutionFile, $lines)
}

这是用法:

AddFolderToSolution "d:\somefolder" "d:\mysolution\Solution1.sln"

通过运行上面的示例,它将从以下位置复制文件d:\somefolder到一个名为SolutionItems靠近解决方案文件。然后添加一个解决方案文件夹同名SolutionItems并将这些文件添加为解决方案项目.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将文件添加到解决方案文件夹? 的相关文章

随机推荐

  • 使用 Handlebar.js

    我实际上是想找到一些关于 Handlebar js 的教程 我发现了这个http javascriptplayground com blog 2012 05 javascript templated handlebars tutorial
  • 学习递归,错误信息(非默认参数跟随默认参数)python

    尝试练习学习递归 该程序旨在遍历列表并打印出所选字母的位置 我也不明白这个错误消息的含义 非默认参数遵循默认参数 不太明白为什么会出现错误或如何修复它 任何帮助总是感激 谢谢 def get position pos 0 List lett
  • 使用 .format(或 f 字符串)时如何转义字符串中的大括号 ({}) 字符?

    非工作示例 print Hello 0 format 42 期望的输出 Hello 42 你需要加倍 and gt gt gt x Hello 0 gt gt gt print x format 42 Hello 42 这是相关部分格式字符
  • 如何在 CSS 表格中使用固定宽度单元格来避免“无样式内容的闪烁”?

    我的 Web GUI 布局部分由 CSS 表驱动 这主要是因为我希望 单元格 在所有情况下都具有相同的高度 http www senktec com 2014 01 using css display table cell for colu
  • 网上有没有全面的 MIME 标头格式参考?

    我已经浏览了大约 100 个网站 但没有找到任何东西 有些只是 mime 类型值的列表 其他则是对 RFC 的引用 或者或多或少直接引用它们 RFC 是难以理解的 每个 RFC 都只揭示了大象的一小部分 是否有某个地方可以让我们全面了解整个
  • 朱莉娅的下三角矩阵

    我的列数等于行数 并且对角线等于零 我该如何构建这个矩阵 mat 1 2 3 4 1 0 NA NA NA 2 1 0 NA NA 3 2 4 0 NA 4 3 5 6 0 我试过这个 x rand 4 4 4x4 Array Float6
  • 如何在 C++ 字符串中搜索非 ASCII 字符?

    string s x1 y1 y2 z3 for auto i s begin i s end i if i 字符比较肯定是错误的 正确的方法是什么 我用的是vs2013 首先 您需要对程序如何处理 Unicode 有一些基本的了解 否则
  • pyspark 的 Python Round 函数问题

    我对 Spark 比较陌生 当我在导入 pyspark 函数后尝试使用 python 的内置 round 函数时遇到了问题 这似乎与我导入 pyspark 函数的方式有关 但我不确定有什么区别 或者为什么一种方法会导致问题而另一种方法不会
  • 在 Flask 中返回立即响应,但在新线程中完成处理

    我有一个从 10 秒开始的过程 但是在 10 秒之后 我不需要将信息返回给用户 而是将其写在 dynamoDB 上 这就是为什么我希望用户不必等待 10 秒 相反 我希望在发布请求后立即得到 成功 响应 我读了几篇文章并在this http
  • Terraform - Azure 上的静态 IP 地址

    我们需要为通过 terraform 部署在 Azure 中的虚拟机配置静态私有 IP 原因是我们需要通过 ansible 管道在 Ansible 中使用这些 我在这里找到的一个解决方案是首先创建一个具有 动态 地址的网卡 然后在 Terra
  • 将大数字类型转换为较小数字类型

    我仔细环顾四周 找不到类似的问题 所以如果之前有人问过这个问题 我深表歉意 我只是在玩弄类型和数字 我想知道是否可以保证以下行为 如果我将 2 个变量声明为 unsigned char BIT 8 0 unsigned short int
  • Rhino Mocks:Repeat.Once() 不起作用?

    谁能告诉我为什么下面的测试没有失败 Test public void uhh what var a MockRepository GenerateMock
  • 如何在帖子正文到达服务器之前更改帖子正文?

    尝试编写我的第一个小提琴脚本 如何在帖子正文到达服务器之前更改帖子正文 我的意思是 我填写表格 单击提交 然后暂停以更改我想要的内容 最后发送到服务器 我发现这个脚本可以更改响应 但我想更改请求 if oSession HostnameIs
  • 使用 PHP / CURL 通过 FTP 获取修改日期

    我似乎遇到了 CURL 与 FTP 的文档干旱 谁能告诉我如何使用 PHP CURL 获取给定文件的最后修改日期 非常感谢 试试这个 它在这里似乎工作正常 但我只在一台服务器上测试过
  • GetSafeHtmlFragment 删除所有 html 标签

    我在我的网站中使用 GetSafeHtmlFragment 我发现除了 p and a 已移除 我查了一下 发现微软没有解决这个问题 有没有替代方案或者有什么解决方案 Thanks 令人惊讶的是 微软在 4 2 1 版本中对 4 2 XSS
  • 如何将数据从 NSDictionary 绑定到 NSTableView?

    有谁知道如何使用 NSDictionary 中的绑定值填充 NSTableView 提前致谢 您需要创建一个NSDictionaryController在界面生成器中 将其绑定到您的字典 然后绑定NSTableView到 中的对象NSDic
  • 用户设置的数据库表结构

    我需要添加一个表来存储用户设置 用户将首次拥有大约 10 种不同的设置 但我确信还会有更多 您建议使用哪种可扩展的数据库表结构来存储用户设置 任何帮助将不胜感激 谢谢你 设置表列 setting id 设置代码 设置名称 设置描述 用户表列
  • Azure DevOps:为所有项目中的所有存储库设置 Git 分支权限

    有没有办法为 Azure DevOps 中的所有当前和未来存储库和项目中的所有当前和未来分支设置 强制推送 权限 目前 我们有大约 50 个项目 每个项目都有一个存储库和多个分支 在每个存储库的每个分支中设置权限将需要大量手动工作 而且容易
  • event.preventDefault() 和多个事件

    在我开始编写大量不起作用的代码之前 我想我应该问这个问题 event preventDefault 仅取消点击事件的默认操作不是吗 理论上 我应该能够将 jQuery 中的多个单击事件处理程序绑定到给定目标 以执行不同的操作 例如 Ajax
  • 如何将文件添加到解决方案文件夹?

    我正在使用以下脚本回答here https stackoverflow com questions 47628034 how to create a solution folder for a solution in visual stud