我们的版本会自动将javascript / css文件捆绑在一起,并在文件名中添加一个校验和,以便于验证。由于这些是自动生成的,并且名称已更改,因此我无法将其包含在解决方案中。我尝试查看msdn链接,但是找不到所有可能标记的完整架构。
我发现但无法理解的东西:如何在发布配置文件中编辑部署设置
我也在SO上看到了这个答案,但是我无法使其工作,它试图将其放在obj文件夹中,而不是在publish文件夹中,并且再次,我找不到要尝试的模式并弄清楚如何重定向它。
理想情况下,最终目标是使发布配置文件将位于项目中bundles文件夹下的这些文件复制到PublishProfile.pubxml文件中指定的publish目录中的bundles文件夹中。
感谢您的任何帮助!
我最终找到一个人有类似的问题,谁帮我明白我需要什么样的改变联系SO回答我结束了以下结构,从项目的根目录抓住所有的CSS和JS文件(它看起来像你可以只发明那些JSFile和CSSFile标记,它们只是稍后使用的名称),然后将它们发送到DestinationRelativePath标记,该标记需要%(Filename)%(Extension)位(否则,它将尝试创建一个文件称为捆绑)。JSFile.Identity似乎提供了文件列表。
这就是我最终得到的。请注意,CSS包含RecursiveDir部分,但实际上并未执行任何操作,并且本地发布和teamcity都正确地发布了所有内容。
<PropertyGroup>
<CollectFilesFromContentDependsOn>
AddFilesToDeploy;
$(CollectFilesFromContentDependsOn);
</CollectFilesFromContentDependsOn>
</PropertyGroup>
<!--Add files to deploy -->
<Target Name="AddFilesToDeploy">
<GetAssemblyIdentity AssemblyFiles="$(TargetPath)">
<Output TaskParameter="Assemblies" ItemName="CurrentAssembly" />
</GetAssemblyIdentity>
<ItemGroup>
<JsFile Include="bundles\*.js" />
<CssFile Include="bundles\*.css" />
<FilesForPackagingFromProject Include="%(JsFile.Identity)">
<DestinationRelativePath>bundles\%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
<FilesForPackagingFromProject Include="%(CssFile.Identity)">
<DestinationRelativePath>bundles\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句