创建自定义 MSBuild 任务时如何从 C# 代码获取当前项目目录?

2023-12-10

我不想运行路径硬编码的外部程序,而是想获取当前的项目目录。我正在使用自定义任务中的进程调用外部程序。

我该怎么做呢? AppDomain.CurrentDomain.BaseDirectory 只是给我 VS 2008 的位置。


using System;
using System.IO;

// This will get the current WORKING directory (i.e. \bin\Debug)
string workingDirectory = Environment.CurrentDirectory;
// or: Directory.GetCurrentDirectory() gives the same result

// This will get the current PROJECT bin directory (ie ../bin/)
string projectDirectory = Directory.GetParent(workingDirectory).Parent.FullName;

// This will get the current PROJECT directory
string projectDirectory = Directory.GetParent(workingDirectory).Parent.Parent.FullName;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建自定义 MSBuild 任务时如何从 C# 代码获取当前项目目录? 的相关文章

  • 如何引用 .net 可执行文件中的类?

    IL 反汇编程序显示了我想在项目中使用的 Net 可执行文件中的类 我如何使用我自己项目中的这些类 从 Visual Studio 上的项目添加对该可执行文件的引用 您应该有权访问它定义的公共类 可执行文件是一个像任何其他程序集一样的程序集
  • 使用 c11 标准和 clang 来使用 strcpy_s

    我正在运行 OS X Sierra 并尝试编译一个使用的 c 程序strcpy s 但是我安装的 clang 编译器使用的是 c99 标准 但是据我读到的 https embeddedgurus com barr code 2017 08
  • 如何有效地测试action是否用属性(AuthorizeAttribute)修饰?

    我正在使用 MVC 并且有一种情况OnActionExecuting 我需要确定即将执行的Action方法是否用属性修饰 AuthorizeAttribute尤其 我不是问授权是否成功 失败 而是问该方法是否需要授权 对于非 MVC 人员
  • 合并多边形的高效算法

    我有一个多边形列表 在这个列表中 一些多边形重叠 或者接触其他多边形 我的任务是合并所有相互重叠或接触的多边形 我有一个union执行此操作的方法 做到这一点最有效的方法是什么 我目前能想到的是循环遍历多边形列表 检查合并列表以查看该多边形
  • 有什么办法可以让这个 C# 代码更快吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在读取一个大文件 X12 并解析其中的信息 我有两个瓶颈功能 我似乎无法解决 read line 和 get element 有什
  • 如何使用平台调用编组 void*

    我需要从 dll 中包含的 C api 调用函数 函数原型如下 int func char name void value 其中指针值的内容可以引用依赖于传递的名称的任何类型 我不确定如何设置 Dll 输入端口以正确编组此 void 我一直
  • 缓存友好的矩阵移位功能

    我想将二维方阵的第一行移到最后一行 所以如果我有一个像A这样的矩阵 我想要得到B 我可以使用两个简单的 for 循环来做到这一点 例如 void shift int M int N int A M N int i j temp for i
  • C++ 中的反向迭代器和负跨步迭代器,在开始之前使用一个作为哨兵

    In 查看 C 反向迭代器的另一种方式 https devblogs microsoft com oldnewthing 20211112 00 p 105908雷蒙德 陈写道 C 语言的一个怪癖 你可以拥有一个指针 集合的 已过终点 但不
  • 如果我每次创建粒子时都强制重新初始化每个粒子,我是否应该使用粒子池

    我正在 XNA4 中创建一个粒子系统 但遇到了问题 我的第一个粒子系统是一个简单的粒子列表 其实例是在需要时创建的 但后来我读到了有关使用池的内容 我的第二个系统由一个充满粒子的池和一个发射器 控制器组成 我的池非常基本 这是代码 clas
  • Makefile:如何正确包含头文件及其目录?

    我有以下 makefile CC g INC DIR StdCUtil CFLAGS c Wall I INC DIR DEPS split h all Lock o DBC o Trace o o cpp DEPS CC o lt CFL
  • 安全移动 C++ 对象

    我听到过一些警告 不要通过以下方式将对象运送到另一个内存位置memcpy 但不知道具体原因 除非它包含的成员做了依赖于内存位置的棘手事情 否则这应该是完全安全的 或者不是 编辑 预期的用例是像这样的数据结构vector 它存储对象 不是po
  • 有没有一种方法可以在 TreeView.Nodes 集合中搜索 TreeNode.Text 字段?

    像这样 TreeNode treeNodes treeView Nodes Find searchString true 但我希望它在text字段而不是name field 我不知道有任何内置方法 但你可以使用 LINQ TreeNode
  • 如何检查我的程序是否有数据通过管道传输到其中

    我正在编写一个应该通过标准输入读取输入的程序 所以我有以下结构 FILE fp stdin 但是 如果用户没有将任何内容通过管道传输到程序中 这就会挂起 我如何检查用户是否确实将数据通过管道传输到我的程序中 例如 gunzip c file
  • 检查字符串中是否存在所有字符值

    我目前正在做这项任务 但我被困住了 目标是读取文件并查找文件中的字符串中是否存在这些字符值 我必须将文件中的字符串与作为参数放入的另一个字符串进行比较 但是 只要每个字符值位于文件中的字符串中 那么它就 匹配 示例 输入和输出 a out
  • 在另一个类中使用一个类对象?

    我正在用 c 制作应用程序 在该应用程序中 我有一个类DataCapture cs 在同一个应用程序中 我有另一个类Listner cs 在 Listner cs 类中 我想使用以下对象DataCapture cs不创建新对象DataCap
  • 在 C++ 中运行 python [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个用 C 编写的应用程序和一个测试系统 也是用 C 编写的 测试系统非常复杂并且很难改变 我只想做一些小的改变 我的班级是这样的
  • 如何获取 EF 中的实体更改增量?

    我只需要获取已更改字段的列表 数据存储区是 ssce 因此没有可用的触发器 EF 是否支持获取列表或构建通用组件 根据上下文的类型和生成的实体 您可以通过多种不同的方式来完成此操作 如果对象继承自 Entity 或 POCO 您可以使用Ob
  • 是否有普遍接受的 GMP 替代方案来实现任意精度? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 在寻找 BigInt 库的过程中 我发现了这篇文章 Microsoft Windows 上的 C 或
  • 使用智能指针在大型对象集合中创建多个索引

    我正在为一个大型对象集合创建多个索引 即使用不同的键 对象可以改变 集合可以缩小和增长 到目前为止我的想法 保留某种指向对象的指针的多个集合 使用set代替map以获得更好的封装 使用 unordered set 可以很好地扩展大型数据集
  • TransactionScope 在某些机器上自动升级到 MSDTC?

    在我们的项目中 我们使用 TransactionScope 来确保我们的数据访问层在事务中执行其操作 我们的目标是not要求在我们的最终用户的计算机上启用 MSDTC 服务 问题是 在我们一半的开发人员机器上 我们可以在禁用 MSDTC 的

随机推荐

  • 如何设置从javascript打印的份数[重复]

    这个问题在这里已经有答案了 我正在尝试使用 javascript 的打印方法打印文档 现在我想设置打印份数 默认情况下它将打印 1 份 我想将份数设置为两份 2 份 是否可以通过js代码来做到这一点 我们可以通过打印机设置进行设置 但它会打
  • 使用 nodemailer 通过 Node.js 发送电子邮件不起作用

    我已经在本地设置了一个基本的 NodeJS 服务器 使用 nodemailer 模块 http localhost 8080 只是为了测试服务器是否真的可以发送电子邮件 如果我正确理解 SMTP 选项 如果我错了 请纠正我 我可以尝试从我的
  • 2048 游戏的正确方块移动

    我决定制作 2048 命令行版 但我在获得正确的图块移动方面遇到困难 我当前的结构是棋盘是一个 2D 整数数组 4x4 当接收到输入时 它会尝试将每个图块推向该方向 忽略值为 0 的图块 如果它注意到变化 它将重新开始 因为底行的图块必须一
  • 如何访问对象标签中加载的 HTML 元素?

    例如 使用 jQuery 获取文本输入值 username val 我曾尝试过这个this问题 这是我的代码 div div window load function siteloader html setTimeout function
  • AWS S3 复制/粘贴不复制元数据

    使用 Amazon Web 界面 可以将 S3 对象从一个存储桶复制到另一个存储桶 但是 粘贴的对象不具有原始对象的元数据 如何同时粘贴元数据 我猜测 CLI 可以做到这一点 但我不知道如何做到 请注意 元数据必须与对象一起创建 以便在 S
  • 使用无表单的Post方法发送数据

    我想将数据发送到 API 数据包括简单的变量 用户名 密码 电子邮件等 问题是 O 想使用 POST 方法向此发送数据 我在Google上搜索了这个问题 每个人都说去CURL 什么是卷曲 它是函数 脚本 API 还是什么 还有其他方法吗 我
  • VBA:为什么使用属性而不是子例程或函数?

    为什么我们需要使用财产Let Get and Set在 VBA 类中 我们可以使用子例程或函数简单地传递和返回参数吗 我认为简短的答案是属性是类的特征 而方法 子例程 是操作 我对此的解释是 属性是 形容词 方法是 动词 我们可以做一个类比
  • 在 C# 中反序列化对象列表

    I Use Json转换序列化对象并将其保存在数据库中 这是我保存在数据库中的序列化字符串的示例 matId 1 value 44 matId 2 value 55 matId 4 value 77 现在 当我从数据库获取这个字符串时 它有
  • Angular 2+ 应用程序上的嵌入式 Twitter 小部件仅在首页加载时显示

    如果我完全复制 Twitter 文档中的内置函数 https dev twitter com web javascript loading 进入 ngAfterViewInit 函数 但是当我切换路线时 小部件也会消失 以下是仅适用于第一页
  • NotificationHubUnauthorizedException:Azure 通知中心注册未经授权

    所以我正在尝试 Azure 上的通知中心 我已经根据这篇博文 我已经在 Android 代码中完成了 GCM 设置 因此我有一个有效的 regId String connectionString Endpoint sb
  • 扩展散点图中的 x 和 y 轴长度,d3js

    我正在尝试延长 x 和 y 轴长度并在末尾添加箭头 这是我的代码和插件 我需要 x 轴延伸到 4 6 之外 y 轴延伸到 AS 之外 并在末尾添加一个箭头 请帮忙 https plnkr co edit tA6oyKQCCmhNadbARR
  • 在应用程序启动时调用 XNA GraphicsDeviceManager.ApplyChanges() 会导致闪烁

    我有一个函数 其中包含以下代码 GameStateManagementGame GraphicsDeviceManager PreferredBackBufferWidth width GameStateManagementGame Gra
  • 用 C++ 中的字符串索引的整数[重复]

    这个问题在这里已经有答案了 可能的重复 在 C 数组中为什么会这样 a 5 5 a 这怎么可能是有效的 C void main int x 1 WTF 在 VC 10 上编译并在调试模式下的值x语句后为 84 这是怎么回事 数组下标运算符是
  • 如何安全连接到部署到 Vercel(无服务器)的 Next.js 应用程序(使用 Prisma 和 MySQL)中的数据库

    我在 DigitalOcean 上的 MySQL 数据库被锁定 只能通过本地连接访问 我强烈希望像这样保持它的安全 即不要打开它 我习惯使用 SSH 隧道来连接它 例如ssh L 3306 localhost 3306 i ssh id r
  • PHP SoapClient 发送自定义 XML

    我正在尝试使用 PHP 中的soapClient 类发出 SOAP 请求 这是我的代码 xmlstr lt lt
  • 使用pmap函数检查一行中的所有值是正数还是负数

    我有这个数据框 我只想使用pmap函数仅过滤所有值为负或正的行 我正在寻找一种简洁的方法来做到这一点 正如我所想的那样c 但我们只能在函数内部使用它 可以通过这段代码实现 df lt tibble x c a b c y c 1 1 1 z
  • 抽屉式导航栏 - Gmail 应用程序等部分之间的分隔线

    我正在更新我的应用程序中的导航抽屉 我想像 Gmail 应用程序那样添加分区分隔符 我如何添加它们 只需将它们添加为视图即可 这是一种简单的方法 但是 我想知道 这是正确的方法吗 Gmail 应用程序 现在 我正在使用带有标题视图的列表视图
  • 为什么计算机在汇编语言中使用十六进制数字系统?

    为什么计算机在汇编语言中使用十六进制数字系统 他们为什么不使用任何其他数字系统 如二进制 八进制 十进制 是什么迫使计算机设计者在组装时使用十六进制系统 为什么它看起来对他们如此有利 计算机不使用十六进制 计算机中没有任何组件处理十六进制值
  • python 三引号入门

    我写了一个简单的三引号打印语句 见下文 对于 OVER 线稿 它会被截断为两个不同的行 当您将其复制粘贴到解释器中时 但是 如果我在每行末尾插入一个空格或任何空格 那么它会打印得很好 知道为什么 python 中会出现这种行为吗 我倾向于认
  • 创建自定义 MSBuild 任务时如何从 C# 代码获取当前项目目录?

    我不想运行路径硬编码的外部程序 而是想获取当前的项目目录 我正在使用自定义任务中的进程调用外部程序 我该怎么做呢 AppDomain CurrentDomain BaseDirectory 只是给我 VS 2008 的位置 using Sy