2016-04-09 52 views
1

我正在使用ASP.NET 4.6(不是5.0/Core),並且因爲我感興趣的一些JS庫只能通過NPM使用,所以我正在試驗MS似乎正在推薦的新型NPM和吞噬型管道。我主要設法讓所有的東西都能正常工作,並且按照我想要的方式進行配置,但是我還沒有弄清楚如何將所產生的縮小文件發佈到網站上,而不會將它們檢入源代碼並明確包含在項目。 (TypeScript設法做到這一點,儘管我從來沒有完全清楚如何)。當然,我總是可以回頭檢查它們的源代碼並將它們包括在項目中 - 但我之前做過在TypeScript的早期階段,我真的不喜歡它,看起來它不是「正確」的方法。在網站中包含uglified文件從Visual Studio發佈

有什麼建議嗎?是否有構建目標或類似的東西,可以自動獲取給定指定文件夾中的所有內容(如ASP.NET Core使用的lib文件夾,我認爲),併發布這些目標?

+0

不要將縮小的文件檢入源代碼 - 而是在構建腳本中添加新的編譯步驟。你應該編譯你的類,你的視圖,縮小你的JS和CSS,在你的構建腳本中將TypeScript編譯成JS,LESS編譯成CSS。 – mason

+0

@mason - 我同意,這就是我想要做的。問題是我不能這樣做,仍然使用內置的VS/msbuild網站發佈工具(這是MS領域需要的)。或者至少,我無法弄清楚如何。 –

回答

1

這裏有一個很好的描述:http://www.asp.net/mvc/overview/deployment/visual-studio-web-deployment/deploying-extra-files

短版本是,你包括這個在.pubxml文件(S):

<Target Name="CustomCollectFiles"> 
    <ItemGroup> 
     <_CustomFiles Include="..\ExtraFiles\**\*" /> 
     <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)"> 
     <DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath> 
     </FilesForPackagingFromProject> 
    </ItemGroup> 
    </Target> 
    <PropertyGroup> 
    <CopyAllFilesToSingleFolderForPackageDependsOn> 
     CustomCollectFiles; 
     $(CopyAllFilesToSingleFolderForPackageDependsOn); 
    </CopyAllFilesToSingleFolderForPackageDependsOn> 

    <CopyAllFilesToSingleFolderForMsdeployDependsOn> 
     CustomCollectFiles; 
     $(CopyAllFilesToSingleFolderForPackageDependsOn); 
    </CopyAllFilesToSingleFolderForMsdeployDependsOn> 
    </PropertyGroup> 

只是需要找到合適的谷歌關鍵詞(「MSBuild的發佈構建目標包括其他文件」,如果你是感興趣)來打開它。

相關問題