Continuous integration 内部构建.net标准1.4类库TFS 2015

Continuous integration 内部构建.net标准1.4类库TFS 2015,continuous-integration,tfs-2015,.net-standard,Continuous Integration,Tfs 2015,.net Standard,我们正在为Xamarin表单应用程序构建一个web API应用程序。我包括了一个.NET标准类库项目,用作我的视图模型。我们的想法是,在构建web api端点时,我将把更新后的类库发布到我们的内部NuGet服务器 我们的CI失败了。当我签入代码时,我得到一个构建错误(使用TFS 2015内部部署)。我收到的第一个错误是 项目的默认XML命名空间必须是MSBuild XML命名空间。如果项目是以MSBuild 2003格式编写的,请添加xmlns=”http://schemas.microsoft

我们正在为Xamarin表单应用程序构建一个web API应用程序。我包括了一个.NET标准类库项目,用作我的视图模型。我们的想法是,在构建web api端点时,我将把更新后的类库发布到我们的内部NuGet服务器

我们的CI失败了。当我签入代码时,我得到一个构建错误(使用TFS 2015内部部署)。我收到的第一个错误是

项目的默认XML命名空间必须是MSBuild XML命名空间。如果项目是以MSBuild 2003格式编写的,请添加xmlns=”http://schemas.microsoft.com/developer/msbuild/2003“到元素。如果项目是以旧的1.0或1.2格式编写的,请将其转换为MSBuild 2003格式

因此,我将XML名称空间添加到csproj中 现在我明白了:

项目中没有目标


您使用哪个版本的Visual Studio?可以在命令行中使用VS或msbuild在本地生成项目吗

无论如何,根据错误消息,它似乎与创建项目的VS版本和msbuild版本(VS2017中应用的新.csproj项目格式)有关。您可以参考以下线程来解决此问题:

对于第一个错误:

对于第二个错误:

  • 将以下属性添加到项目元素:

    DefaultTargets=“BuildTarget”

    这将告诉MSBuild在执行生成时使用名为“BuildTarget”的目标。接下来,将以下子元素添加到项目元素(就在最后一行之前,该行有
    “”
    ):

    
    

    然后保存文件并关闭编辑窗口。然后返回到解决方案资源管理器,右键单击解决方案并选择“重新加载项目”。然后构建项目。您应该在生成的输出中获得消息“Build selected”,如中所示:


  • 所以答案是不可能的。我曾尝试在代理上安装VS 2017,但没有成功

    我们确实发现一篇文章说TFS需要升级到更新3之后

    几个月后,我将把我们升级到2017年——这将使这一点成为一个没有实际意义的问题


    谢谢你的回答

    这是我们的CI服务器(TFS 2015内部部署)。它在本地为我构建了良好的架构(VS 2017)。我想我的问题更具体地说是TFS 2015能否生成.NET标准类库项目?@jdbenett您可以尝试在生成代理服务器上安装VS 2017,然后使用MSBuild任务而不是Visual Studio生成步骤,然后指定MSBuild 15.0的位置。检查一下这是否对你有效,参考:我还没有尝试过,但我很快就会尝试。我会在2017年安装后添加结果。你能分享详细的构建日志吗?不知道为什么会被否决?这个问题到底出了什么问题。这似乎引起了一些注意。