4

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

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 中的特定项目吗?

4

1 回答 1

5

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

  1. 在 Visual Studio 中,创建一个新配置,排除您不感兴趣的项目。-(构建 -> 配置管理器...,在活动解决方案平台上选择:下拉列表)

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

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

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

例如

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

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

于 2013-08-09T13:40:47.397 回答