2016-04-09 53 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的发布构建目标包括其他文件”,如果你是感兴趣)来打开它。

相关问题