如何解析 BeforeBuild 目标中的 DefineConstants 值?

发布于 2024-12-07 02:23:01 字数 462 浏览 0 评论 0原文

此问题相关。

我真正想要的是一种设置可从 Vis Studio 2010 IDE 中设置的键值对的方法。我似乎无法从 IDE 中设置项目属性值,因此我正在考虑使用编译器常量。

那么,如果我将编译器常量设置为,

 <DefineConstants>Foo=bar;Key=Value 2;</DefineConstants>

我可以解析它(在 BeforeBuild 目标中),以便我可以提取“bar”和“Value 2”的值吗?我的 MSBuild 技能几乎为零,我的 Google foo 也没有找到任何解决方案。

Related to this question.

What I really want of a way of setting key value pairs that is settable from the Vis Studio 2010 IDE. I seem not to be able to set Project property values from within the IDE so I am looking at using compiler constants.

So, if I have the compiler constants set to

 <DefineConstants>Foo=bar;Key=Value 2;</DefineConstants>

can I parse this (in a BeforeBuild target say) so that I can extract the values of "bar" and "Value 2"? My MSBuild skills are next to nothing and my Google foo has not found any solutions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

远昼 2024-12-14 02:23:01

使用 MSBuild 编译项目时可以覆盖此值。

 msbuild.exe myproj.csproj /p:DefineConstants="foo=true"

您无法在 BeforeBuild 任务中设置构建属性,但可以使用以下方式读取它们:

 $(DefineConstants)

这将返回原始字符串,并且您需要使用批处理命令解析字符串,以在 BeforeBuild 步骤中将它们分成键/值对。

不太确定您要做什么,DefineConstants 就是这样,并在条件编译的代码中引用。如果您想添加自定义构建属性,您可以编辑 csproj 文件并包含您自己的目标文件。这取决于您想要访问它们的位置和原因。在构建过程中使用IDE(插件)还是代码?

You can override this value when compiling the project with MSBuild.

 msbuild.exe myproj.csproj /p:DefineConstants="foo=true"

You can't set build properties in a BeforeBuild task, but you can read them using:

 $(DefineConstants)

This would return the raw string, and you would need to parse the string using batch commands to separate them into key/value pairs in a BeforeBuild step.

Not really sure what you are trying to do, DefineConstants are just that, and referenced in code for conditional compilation. If you want to add custom build properties you can edit the csproj file and include your own targets file. It depends where and why you want to access them. In the build process the IDE (plugin), or code?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文