Msbuild 如何从TFS 2015构建中获得预期输出(以匹配我的XAML构建)?

Msbuild 如何从TFS 2015构建中获得预期输出(以匹配我的XAML构建)?,msbuild,tfsbuild,tfs-2015,Msbuild,Tfsbuild,Tfs 2015,我们刚刚升级到TFS2015(现场),我正在尝试建立一个与我的xaml构建相同的构建,但我似乎无法构建相同的文件。下面是我用来发布站点的xaml输出目录的图片。要获取此信息,请导航到build文件夹,然后深入到_PublishedWebsites\BOTWSitecoreWeb文件夹: 以下是解决方案资源管理器的图片: 如你所见,BOTWSitecoreWeb是我的启动项目,它构成了网站的基础。因此,要发布此网站,我只需将文件夹\u PublishedWebsites\BOTWSitecor

我们刚刚升级到TFS2015(现场),我正在尝试建立一个与我的xaml构建相同的构建,但我似乎无法构建相同的文件。下面是我用来发布站点的xaml输出目录的图片。要获取此信息,请导航到build文件夹,然后深入到_PublishedWebsites\BOTWSitecoreWeb文件夹:

以下是解决方案资源管理器的图片:

如你所见,BOTWSitecoreWeb是我的启动项目,它构成了网站的基础。因此,要发布此网站,我只需将文件夹\u PublishedWebsites\BOTWSitecoreWeb复制到我的IIS目录。下面是使用xaml构建时的情况:

如果我深入到TFS2015 build output文件夹中的Drops/Source/sc/Website文件夹中,我会得到这个文件,其中的文件和文件夹比我预期的多得多:

因此,我的问题是,如何获得与当前从TFS2015生成的xaml生成相同的输出

bin文件夹具有相同数量的文件,因此这是一个良好的开端。以下是xaml生成中的bin文件夹:

这是TFS 2015版本中的bin文件夹。请注意,它们都有57个文件,我认为这是一件好事

提前感谢您提供的任何见解


Ben

vNext构建和XAML构建是完全不同的技术。不会有任何自动转换的方式

新的构建基于不同的体系结构,并在不同的平台上运行 完全不同的系统

所以你的情况是可以预测的,很难实现100%的转化率。默认情况下,在vNext中复制文件夹将复制文件夹下的所有内容。在复制或在XAML构建中发布的过程中似乎有一些定制,这些定制将返回如上图所示的结果

如果您有大量定制的XAML构建和定制活动,那么 可以继续使用这些构建,直到您准备好移植您的 将业务逻辑转换为可以在新版本中运行的脚本


你也可以看看这一系列的文章

将生成定义更新为以下内容:

  • 在Visual Studio生成步骤中添加
    /p:DeployOnBuild=true/p:OutDir=“$(build.artifactstagindirectory)\\”
    参数:
  • 将“发布生成工件”任务的“发布路径”更改为“$(Build.artifactstagingdirectory)\u PublishedWebsites\ProjectName”:

  • 保存生成定义并对生成进行排队,现在您应该可以在drop文件夹中发布与XAML build相同的文件。

    Hi Patrick。谢谢你的回复。因此,没有办法从新的团队构建中获得一个简单的输出目录,该目录包含部署所需的所有内容?(即/bin文件夹和包含aspx文件、配置文件等的所有其他子文件夹?)这似乎太错误了!如果生成的输出尚未准备好部署,那么进行生成有什么意义!?在vNext构建中使用的一种典型方法是使用复制文件和发布构建工件步骤发布构建工件。尝试使用代理上的本地路径,在将任何工件推送到其目标之前,将其复制到该路径。例如:
    c:\agent\\u work\1\a
    。您可以按照Eddie的建议使用变量
    Build.ArtifactStagingDirectory
    。更多变量请参考。我认为问题在于c:\agent\u work\1\a(其中$(Build.ArtifactStagingDirectory)生成后指向是空的。为什么?请回答下面的问题,谢谢Eddie-就是这样!我有一个。sln项目,在它下面有两个项目,如web和api,我的问题是,我应该将这两个项目都添加到源代码管理中,如果是,如果我在dll中做了一些更改,那么TFS构建工件不是produci正在生成最新的web dll?请在下面的帖子中以及$(build.artifactstagingdirectory)\u PublishedWebsites\ProjectName\bin下回答,而不是生成自己的二进制文件?它是受源代码管理的旧二进制文件