Jenkins 使用MSBuild&;从Visual Studio Online自动生成;詹金斯

Jenkins 使用MSBuild&;从Visual Studio Online自动生成;詹金斯,jenkins,msbuild,azure-devops,Jenkins,Msbuild,Azure Devops,我想在Jenkins中使用MSbuild脚本构建代码。我的代码存储库位于Visual Studio Online上。下面的脚本不会复制本地计算机上输出文件夹中的任何内容。然而,如果我在本地机器上使用相同的脚本,它可以正常工作。以下是我用于构建的脚本: <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <BuildArtifactsDir I

我想在Jenkins中使用MSbuild脚本构建代码。我的代码存储库位于Visual Studio Online上。下面的脚本不会复制本地计算机上输出文件夹中的任何内容。然而,如果我在本地机器上使用相同的脚本,它可以正常工作。以下是我用于构建的脚本:

   <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
    <BuildArtifactsDir Include="D:\Jenkins\jobs\Test\workspace\BuildArtifacts\"/>
    <TeamFoundationServerUrl Include="https://XXX.visualstudio.com/DefaultCollection/XXX-XXX/"/>
    <SolutionFile Include="$(TeamFoundationServerUrl)*.sln"/>
</ItemGroup>
<PropertyGroup>
    <Configuration Condition="'$(Configuration)'=='' ">Release</Configuration>
    <BuildPlatForm Condition="'$(BuildPlatForm)'=='' ">Any CPU</BuildPlatForm>
</PropertyGroup>
<Target Name="Compile" DependsOnTargets="Init">
    <MSBuild Projects="@(SolutionFile)" Targets="Rebuild"
             Properties="OutDir=%(BuildArtifactsDir.FullPath);Configuration=$(Configuration);Platform=$(BuildPlatform)"/>
</Target>
<Target Name="Init">
    <MakeDir Directories="@(BuildArtifactsDir)"/>
</Target>

释放
任何CPU

我的环境:

詹金斯:我的本地主持人。 Jenkins中的MSBuild插件。
Visual Studio Online for Code repository。

您无法通过msbuild直接从VSO/TFS获取解决方案

< >从詹金斯连接到VSO/TFS服务器,您可以通过“管理詹金斯->管理插件->可用-> Team Foundation Server插件”在您的詹金斯服务器中安装TFS插件。然后按如下方式配置项目: 该插件将从VSO/TFS服务器获取最新的解决方案,并将其复制到Jenkins服务器,然后您可以相应地更新msbuild脚本


请注意,您需要使用“备用身份验证凭据”使用此插件登录VSO/TFS服务器。要启用此功能,请登录您的VSO/TFS帐户,并在“我的配置文件/安全/备用身份验证凭据”下启用它。

您无法通过msbuild直接从VSO/TFS获取解决方案

< >从詹金斯连接到VSO/TFS服务器,您可以通过“管理詹金斯->管理插件->可用-> Team Foundation Server插件”在您的詹金斯服务器中安装TFS插件。然后按如下方式配置项目: 该插件将从VSO/TFS服务器获取最新的解决方案,并将其复制到Jenkins服务器,然后您可以相应地更新msbuild脚本


请注意,您需要使用“备用身份验证凭据”使用此插件登录VSO/TFS服务器。要启用此功能,请登录您的VSO/TFS帐户,在“我的配置文件/安全性/备用身份验证凭据”下启用它。

如何向VSO进行身份验证?以交互方式运行MSBuild时,凭据从凭据管理器存储中获取,但Jenkins作为服务运行,可能使用LocalSystem。如何向VSO进行身份验证?以交互方式运行MSBuild时,凭据是从凭据管理器存储中获取的,但Jenkins是作为服务运行的,可能使用LocalSystem。我之前执行了相同的步骤,能够从VSO获取最新的代码,但我希望获得生成(仅.dll、.cshtml、.css、.html、.js文件等,不包括.CS文件)仅从VSP使用MSBuild。我可以使用MSBuild转换为build。请建议我。我想使用Jenkins中的MSBuild从VSO下载项目。MSBuild只能生成您指定的解决方案并将项目发布到指定位置。它无法实现连接到TFS、复制工件等操作。请告诉我如何使用将工件发布到指定位置?因为MSBuild只是从VSO下载解决方案到Jenkins中的工作区。是否有一种方法可以使用MSBuild生成和发布解决方案工件?MSBuild不将解决方案下载到工作区。该解决方案由TFS插件下载。MSBuild仅在工作区中生成现有解决方案,并将构件放置到指定的位置。我对你的问题有点困惑。你的意思是想在VSO中构建解决方案,然后将工件下载到Jenkins?我之前也做了同样的步骤,能够从VSO中获取最新的代码,但我只想使用MSBuild从VSP中获取构建(仅.dll、.cshtml、.css、.html、.js文件等,.CS文件除外)。我可以使用MSBuild转换为build。请建议我。我想使用Jenkins中的MSBuild从VSO下载项目。MSBuild只能生成您指定的解决方案并将项目发布到指定位置。它无法实现连接到TFS、复制工件等操作。请告诉我如何使用将工件发布到指定位置?因为MSBuild只是从VSO下载解决方案到Jenkins中的工作区。是否有一种方法可以使用MSBuild生成和发布解决方案工件?MSBuild不将解决方案下载到工作区。该解决方案由TFS插件下载。MSBuild仅在工作区中生成现有解决方案,并将构件放置到指定的位置。我对你的问题有点困惑。你是说你想在VSO中构建解决方案,然后将工件下载到Jenkins?