我可以改变我的后编译器的顺序

本文关键字:顺序 编译器 改变 我的 我可以 | 更新日期: 2023-09-27 17:50:40

我如何改变我的后编译器在visual studio的顺序?

具体来说,我想使代码合同后编译发生后夏普。

我可以改变我的后编译器的顺序

也许这给你指明了正确的方向:

PostSharp由Program Files'PostSharp 2.1'PostSharp.targets

执行

包含在Program Files'MSBuild'v4.0'Custom.After.Microsoft.Common.targets

包含在Windows'Microsoft.NET'Framework'v4.0'Microsoft.Common.targets

包含在Windows'Microsoft.NET'Framework'v4.0'Microsoft.CSharp.targets

包含在YourProject.csproj

一定有类似

的东西

<Import Project="$(ContractsPath)'Microsoft.Contract.targets" />

在所有以前的文件附近。找到它并把它放在

行后面

<Import Project="C:'Program Files (x86)'PostSharp 2.1'PostSharp.targets" Condition=" '$(DontImportPostSharp)' == '' AND Exists('C:'Program Files (x86)'PostSharp 2.1'PostSharp.targets')" />

Custom.After.Microsoft.Common.targets

并尝试编译。

注意:替换版本和目录以匹配您的环境和安装路径

首先,不建议在CodeContracts rewriter之前执行PostSharp rewriter,因为CodeContracts rewriter在被PostSharp修改后可能无法理解输入程序集。

下面是如何确定构建步骤顺序的解释,如果您仍然想要操作它。

PostSharp使用标准的MSBuild扩展点-"DependsOn"属性将自己插入到构建过程中,如MSDN:如何扩展Visual Studio构建过程中所述。

特别是被覆盖的属性"CompileDependsOn"在编译步骤之后插入PostSharp后编译器。你可以在《邮报》上找到这篇文章。目标文件:

<CompileDependsOn>
  PostSharp30TimestampBeforeCompile;
  $(CompileDependsOn);
  PostSharp30TimestampAfterCompile;
  PostSharp30
</CompileDependsOn>

要调试整个构建过程,您可以在"工具"->"选项"->"项目和解决方案"->"构建和运行"中启用MSBuild的诊断详细信息。在构建输出中查找字符串"CompileDependsOn =",以查看构建步骤的顺序。CodeContractInstrument在PostSharp30之前。

您可以在构建/项目文件中操作"CompileDependsOn"属性的值来更改任务的顺序。