【问题标题】:How to pass a custom build property to csproj?如何将自定义构建属性传递给 csproj?
【发布时间】:2013-08-14 19:55:18
【问题描述】:

如何将自定义构建属性传递给 csproj 文件?我的csproj从VS2008升级到VS2012了。

在 MSBuild3 下,构建运行良好。我能够访问自定义属性。但是,在 MSBuild4 下,我有以下警告。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets(316,9): warning MSB3052: The parameter to the compiler is invalid, '/define:MyCustomProp=WHATEVER' will be ignored. [C:\src\MyProj\MyProj.csproj]
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.CSharp.targets(316,9): warning MSB3052: The parameter to the compiler is invalid, '/define:MyCustomPropTwo=WHATEVERTWO' will be ignored. [C:\src\MyProj\MyProj.csproj]

我正在使用 VS2008 编写的脚本在 MSBuild 4 下运行此构建。

【问题讨论】:

  • 您是否在 csproj 文件中定义了您的属性?
  • pm_2,如何在csproj文件中定义一个属性?请举例?
  • 你的意思是编译器属性?
  • 是的,MSbuild 进程使用的自定义构建属性。它可以被编译器和/或链接器使用。

标签: visual-studio-2012 msbuild csproj


【解决方案1】:

要将自定义属性传递给 msbuild 命令行,请使用 /p:PropertyName=PropertyValue 命令开关,这可以多次使用。然后,PropertyName 在您的 msbuild 脚本中作为 $(PropertyName) 可用。见msbuild commandline reference

CSharp.targets 文件是一个 msbuild 文件,因此您必须查找要传递的属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-04
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-08
    相关资源
    最近更新 更多