我的csproj定义了一个构建配置' Debug-plus'与Code Contracts。
<PropertyGroup Condition="'$(Configuration)' == 'Debug-plus'">
<DefineConstants>TRACE;DEBUG;CONTRACTS_FULL</DefineConstants>
<CodeContractsEnableRuntimeChecking>True</CodeContractsEnableRuntimeChecking>
如果有人在没有安装代码合同的情况下尝试在此配置中构建项目,会发生什么?
理想情况下,我希望他们看到一条错误消息,说明如何安装代码合同。最糟糕的情况可能是构建成功但没有在运行时检查代码合同,因此测试可以在不同的计算机上提供不同的结果。
答案 0 :(得分:2)
如果您将CodeContracts用作NuGet包,那么在没有CodeContracts包的计算机上将无法进行构建。他们会看到这样的错误:
Build FAILED. "c:\src\MyProj.csproj" (default target) (1) -> (EnsureNuGetPackageBuildImports target) -> c:\src\MyProj.csproj(302,5): error : This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is ..\packages\CodeContracts.MSBuild.1.7.10908.1101-beta\build\CodeContracts.MSBuild.targets. 0 Warning(s) 1 Error(s)
如果您想自定义错误消息,请在文本编辑器中打开.csproj文件并修改目标EnsureNuGetPackageBuildImports
。添加安装CodeContracts包所需的特定步骤可能是个好主意。