[英]How to include dynamically generated files in Visual Studio's publish profile
我們的構建會自動將javascript / css文件捆綁在一起,並在文件名中添加校驗和以便於驗證。 因為這些是自動生成的並且名稱發生了變化,所以我無法將它們包含在解決方案中。 我已經嘗試查看msdn鏈接,但我找不到所有可能標記的完整模式。
我找到的東西,但無法理解: 如何在發布配置文件中編輯部署設置
我也在SO上看到了這個答案,但我還沒能使它工作,它試圖把它放在obj文件夾中,而不是發布文件夾,再次,我找不到架構試試並弄清楚如何重定向它。
理想情況下,最終目標是讓發布配置文件將位於項目中bundles文件夾下的這些文件復制到PublishProfile.pubxml文件中指定的發布目錄中的bundles文件夾。
感謝您的任何幫助!
我最終找到了一個有類似問題的人,幫助我了解了我需要在鏈接的SO回答中改變的內容我最終得到了以下結構,它從項目的根目錄中抓取所有css和js文件(它看起來像你可以發明那些JSFile和CSSFile標簽,它們只是稍后要使用的名稱),然后將它們發送到DestinationRelativePath標簽,這需要%(Filename)%(擴展)位(否則它只是嘗試創建一個文件)叫捆綁)。 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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.