Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tfs VSTS生成未删除Web应用程序的所有文件_Tfs_Azure Devops_Azure Pipelines Release Pipeline - Fatal编程技术网

Tfs VSTS生成未删除Web应用程序的所有文件

Tfs VSTS生成未删除Web应用程序的所有文件,tfs,azure-devops,azure-pipelines-release-pipeline,Tfs,Azure Devops,Azure Pipelines Release Pipeline,当我开始写这个问题时,我的问题是,在成功构建VSTS之后,我无法看到与要发布的web应用程序项目相关的文件。仅存在解决方案中某些其他项目的文件。然而,我只是偶然发现,这对我很有帮助 在修改了构建中内容设置的配置(即该项目下Bin文件夹的内容)之后,我现在可以看到我的web应用程序项目的已编译.dll文件。但是我在任何地方都看不到将构建的web应用程序复制到服务器所需的其他文件——视图、脚本、css等等 我发现VSTS的构建和发布功能的强大性和灵活性非常令人困惑,因为它完全超出了我们的要求。到目前

当我开始写这个问题时,我的问题是,在成功构建VSTS之后,我无法看到与要发布的web应用程序项目相关的文件。仅存在解决方案中某些其他项目的文件。然而,我只是偶然发现,这对我很有帮助

在修改了构建中内容设置的配置(即该项目下Bin文件夹的内容)之后,我现在可以看到我的web应用程序项目的已编译.dll文件。但是我在任何地方都看不到将构建的web应用程序复制到服务器所需的其他文件——视图、脚本、css等等

我发现VSTS的构建和发布功能的强大性和灵活性非常令人困惑,因为它完全超出了我们的要求。到目前为止,我刚刚右键单击了VisualStudio中的web应用程序项目,选择了Publish并使用了文件系统发布方法。容易的。现在我想自动化应用程序的构建和部署,这要复杂很多倍


那么,有谁能告诉我,如何在VST中构建解决方案,这样我就可以在发布定义中使用“复制文件”任务将文件复制到我们的web服务器(该服务器在Internet上不可见,所以我使用的是本地托管的代理)?

在vNext build中,使用“复制文件”或“发布生成工件”步骤发布生成工件。尝试使用代理上的本地路径,在将任何工件推送到目标之前,将其复制到该路径。例如:

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

  • 详细信息请检查生成步骤的屏幕截图,并回答以下问题:

    根据您的评论,您已经从Visual Studio发布了web应用程序。通常,此操作将在Project/Properties/PublishProfiles文件夹下生成发布配置文件。用于发布web应用的设置存储在配置文件中。因此,您只需确保此发布配置文件已签入源代码管理。然后在TFS生成中,添加以下MSBuild参数:

    /p:DeployOnBuild=true /p:PublishProfile="publishprofile.pubxml"
    

    如果您使用的是另一个问题中的MSBuild标志,则应该在drop文件夹中看到“\u PublishedWebsites”文件夹。在该文件夹中,您应该会看到一个应用程序文件夹,其中包含需要部署到web服务器的所有文件。你看到了吗?我实际上是在遵循JimiSweden发布的第二个答案中的建议。我没有使用MSBuild开关,因为海报上说它们用于创建WebDeploy包,而我只希望文件直接复制到web服务器。您知道哪些开关将导致“_PublishedWebsites”文件夹吗?不用担心,我在更下面的注释中找到了它-它是/p:outdir=$(build.artifactstagingdirectory)开关。现在试一试。谢谢你的帮助。我想,通过更新发布定义中复制文件任务的源参数以指向PublishedWebsites\ProjectName文件夹,我基本上实现了同样的效果,尽管我可以看出您的方法更有效。我完全被VST中的构建/发布所困扰。在VSI中,右键单击应用程序项目,选择“发布”,它将所需文件输出到服务器上的共享。VSTS中的Build函数似乎输出了一些类似但不同的东西。例如,它包括多个版本的web.config,并且没有预编译的app.config。@PhilipStratford从Visual Studio发布时选择哪种发布方法?@Eddie MSFT我使用文件系统方法,并将目标设置为“我的web服务器上的共享”。@PhilipStratford那么您的项目中是否有具有这些发布设置的发布配置文件?我有,一个从Visual Studio本地工作的发布配置文件,我只想在VSTS中复制发布过程。然而,尽管我构建的web应用程序在VST中的外观仍然与VS略有不同,但我现在已经设法使其正常工作。我意识到我指定配置的转换不起作用,因此使用了错误web.config文件中的各种设置。现在,我已经将转换作为VSTS构建过程的一部分进行了,一切都正常了。我尝试了这一点,它确实起了作用(尽管由于其他问题,我发布的web应用程序仍然没有起作用)。