我可以改变我的后编译器的顺序
本文关键字:顺序 编译器 改变 我的 我可以 | 更新日期: 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"属性的值来更改任务的顺序。