预构建操作



作为构建过程的一部分,我需要在预构建时替换c#项目中的一些代码。我希望在.csproj文件中有一些钩子可以指定。我正在使用Rider。这篇文章似乎是关于我需要什么;https://learn.microsoft.com/en-us/visualstudio/ide/reference/pre-build-event-post-build-event-command-line-dialog-box?view=vs-2019,但我不知道如何在.csproj中使用它。

如何在c#中指定预构建操作?

您可以在csproj中定义BeforeBuild目标来运行命令。举个例子,我有一个想要运行的PS脚本:

<Target Name="BeforeBuild">                                                                    
<Exec Command="$(PowerShellExe) -NonInteractive -executionpolicy Unrestricted 
-command &quot;&amp; invoke-command -scriptblock { 
&amp;&apos;$(ScriptLocation)&apos; 
&apos;$(LogFileLocation)&apos;  
&apos;$(MSDeployComputerName)&apos;}
&quot;"/>    
</Target>

请参阅文档。

.csproj内部,您可以添加以下内容:

<PropertyGroup>
<PreBuildEvent>start %25comspec%25</PreBuildEvent>
</PropertyGroup>

在这种情况下,这只会启动cmd窗口,但您可以替换它。您也可以将它放在要使用的属性组中。参见文档

此外,我还想特别注意预处理器指令#if。当你想替换DEBUG代码时,它只应该出现在DEBUG环境中,并且是一个静态替换,这会更容易。

最新更新