使用Mono Compiler时,从VisualStudio 2012 .sln中排除.csproj

时间:2013-08-09 10:23:08

标签: visual-studio-2012 mono xbuild

我想用Mono构建我的VisualStudio 2012解决方案(.sln),但它无法编译依赖于VisualStudio特定程序集的项目。 E.g。

xbuild ServerResource.sln
...
HypervResourceControllerTest.cs(18,17): error CS0234: The type or namespace name `VisualStudio' does not exist in the namespace `Microsoft'. Are you missing an assembly reference?

在这种情况下,HypervResourceControllerTest.cs(18,17)是对Visual Studio测试工具的引用:

using Microsoft.VisualStudio.TestTools.UnitTesting;

由于我不需要编译测试环境,我可以告诉Mono编译器绕过.sln中的特定项目吗?

1 个答案:

答案 0 :(得分:5)

创建一个新配置,告诉xbuild使用它:

  1. 在Visual Studio中,创建一个排除您不感兴趣的项目的新配置。 - (Build - > Configuration Manager ...,在Active solution platform上选择:下拉列表)

  2. 使用配置管理器,从配置中删除不需要的解决方案。

  3. 接下来,关闭VisualStudio,它将保存对.sln和.csproj的更改.sln将记录与配置关联的项目。 .csproj将记录配置的设置,例如是否定义了TRACE或DEBUG。

  4. 最后,当调用xbuild时,将配置的名称分配给Configuration属性。

  5. E.g。

    xbuild /p:Configuration="NoUnitTests" ServerResource.sln
    

    以上将构建与NoUnitTests配置相关联的项目。