1

问题

作为我的 csproj 的一部分,我有一个自定义 MSBuild 任务,它执行 YUICompressor 并生成一个已编译的 css 和 js 文件。

<PropertyGroup>
    <CssOutputFile>$(OutDir)..\Styles\compiled.css</CssOutputFile>
    <JavaScriptOutputFile>$(OutDir)..\Scripts\compiled.js</JavaScriptOutputFile>
    <BuildDependsOn Condition="'$(Configuration)' != 'Debug'">
      $(BuildDependsOn);
      CompressorTarget;
    </BuildDependsOn>
</PropertyGroup>

这作为 git 部署的一部分运行良好,并且正在生成文件,但是 Azure 网站部署引擎随后会将所有输出文件复制到另一个文件夹。在那个过程中,它似乎需要你拥有csproj的任何东西,而不是文件夹中的任何东西。生成的compiled.css和compiled.js不会被复制(因为它们不在我的csproj中)

4

3 回答 3

2

Azure 为部署项目所做的操作应该与执行以下操作完全相同:

  • 右键单击项目并选择发布
  • 将发布方法更改为“文件系统”
  • 输入路径并单击发布

因此,通常,您需要确保构建过程正常运行,以便在进行本地发布时获得正确的文件。如果是这样,那么当 git 推送到 Azure 时,您很可能会得到相同的结果。

于 2012-06-08T19:09:23.627 回答
1

根据您放置已编译脚本的位置,您可以在项目文件中使用星号包含:

<ItemGroup>
  <Content Include="assets\**\*" />
</ItemGroup>

如果 Azure 使用您的项目文件来确定要部署的内容(一开始似乎有些奇怪),那么应该可以。

于 2012-06-08T13:54:27.873 回答
1

我现在使用的解决方法是向 csproj 添加一个空的已编译的.css 和 .js 文件,我想写这个问题以防有人遇到同样的事情。

如果有计划为这种情况做一些不同的事情,如果来自 MS 的人可以发表评论,那就太好了。

于 2012-06-08T13:10:11.110 回答