【发布时间】:2016-01-25 19:35:29
【问题描述】:
我正在使用 Visual Studio 2015 的 Web 部署功能将我的 Type Script SPA 项目部署到我的登台服务器。
我希望部署过程将一些部署特定文件从我的项目的 /Deployment 文件夹复制(并重命名)到项目的其他特定位置。
一个这样的例子是:
[project_root]/Deployment/index.remote.debug.html ---> [project_root]/index.html
我设法使用我的发布配置文件 (.pubxml) 中的以下部分来实现这一点:
<Target Name="index_html">
<ItemGroup>
<_CustomFiles Include="Deployment/index.remote.debug.html" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>index.html</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<Target Name="extractor_config">
<ItemGroup>
<_CustomFiles Include="Deployment/extractor.config.remote.debug.js" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>extractor.config.js</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
index_html;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForPackageDependsOn>
extractor_config;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
但这仅在使用“文件系统”选项发布到文件系统时才有效。 使用“Web 部署”选项发布到我的登台服务器时,我看不到任何效果。 应用程序已正确部署,但未复制/重命名相应文件。
Visual Studio 输出中也没有与此类 Web 部署相关的错误消息。
如果我以非管理员或管理员身份部署没有区别。
有谁知道问题出在哪里?
对于 MSBuild,我完全是外行,这是我的第一次接触。我只是在其他人的在线经验的帮助下才将这些放在一起。
【问题讨论】:
-
这是我用来设置我的.pubxml的文章:baconapplications.com/custom-publish-with-visual-studio-2013
-
我向两个目标都添加了 Message 元素,以查看目标是否被执行。显然,该消息出现在本地部署上,而不是 Web 部署上。
-
只是为了您的娱乐 - 我的挫败感甚至让我匆忙创建了一个名为“部署后步骤”的基于服务器的 Windows 服务,它可以检测新部署并执行所有必要的附加步骤。我只是在问,这不是说明 MSBuilds 的可用性和可理解性的重要内容吗?一个能够在 30 分钟内创建基于服务的解决方案的人在整个周末都无法弄清楚 MSBuild 的方式吗?部署后只是基于服务器的文件复制。没有火箭科学。
-
有点无耻的插件,但是任何一个答案都有帮助吗?
标签: deployment msbuild visual-studio-2015