簡體   English   中英

如何在Visual Studio的發布配置文件中包含動態生成的文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM