在 FAKE MSBuild 任务中定义预处理器符号
Defining preprocessor symbols in a FAKE MSBuild task
有没有办法在 FAKE 的 MSBuild
任务中定义预处理器符号?
例如,如果我的代码中有这样的内容:
#if LOCAL
private static string databaseUrl = "http://localhost/myDbFile.sqlite";
#else
private static string databaseUrl = "http://www.website.com/myPublicDbFile.sqlite";
#endif
然后我想在构建时在我的 F# 构建脚本中定义符号 LOCAL
。
感谢 Ron Beyer(查看评论)为我指明了正确的方向。答案确实是使用 DefineConstants
项目 属性。在典型的 FAKE MSBuild 任务中,它看起来像这样:
// Build a special version with the "SPECIAL" directive defined.
MSBuild
null
"publish"
([
("Configuration", "Release");
("Verbosity", "minimal");
("ProductName", "My Project (Special)");
("InstallUrl", "http://www.example.com/software/MyProjectSpecial/");
("DefineConstants", "SPECIAL")
])
["../MyProject/MyProject/MyProject.csproj"]
|> ignore
有没有办法在 FAKE 的 MSBuild
任务中定义预处理器符号?
例如,如果我的代码中有这样的内容:
#if LOCAL
private static string databaseUrl = "http://localhost/myDbFile.sqlite";
#else
private static string databaseUrl = "http://www.website.com/myPublicDbFile.sqlite";
#endif
然后我想在构建时在我的 F# 构建脚本中定义符号 LOCAL
。
感谢 Ron Beyer(查看评论)为我指明了正确的方向。答案确实是使用 DefineConstants
项目 属性。在典型的 FAKE MSBuild 任务中,它看起来像这样:
// Build a special version with the "SPECIAL" directive defined.
MSBuild
null
"publish"
([
("Configuration", "Release");
("Verbosity", "minimal");
("ProductName", "My Project (Special)");
("InstallUrl", "http://www.example.com/software/MyProjectSpecial/");
("DefineConstants", "SPECIAL")
])
["../MyProject/MyProject/MyProject.csproj"]
|> ignore