VS2013:发布在项目外部的文件上创建的缩小包

时间:2014-02-17 21:52:30

标签: javascript visual-studio-2013 asp.net-4.5

我将Visual Studio 2013和.NET 4.5用于MVC项目。

我已经学会了通过Pluralsight上的几个视频使用AngularJS,其中一个使用Grunt来清理输出目录,然后使用ngmin来最小化Javascript文件。

我的进程正在使用gruntfile.js来清理和运行针对我的解决方案中的javascript文件的ngmin,然后将它们放在名为app_built的目录中。这是通过项目预构建中的批处理文件执行的,然后通过带有指向app_built目录的IncludeDirectory的ScriptBundle包含它。我的意图是使用.NET 4.5的Bundling功能在通过Grunt对所有文件进行最小化后,对Javascript进行其余的缩小和连接。

我使用以下命令指定min-safed文件的路径:

bundles.Add(new ScriptBundle("~/bundles/minSafed")
  .IncludeDirectory("~/app_built/", "*.js", true));

如果我在我的本地机器上运行它,它运行良好没有故障。 Javascript按照我的预期进行缩小和捆绑,并且生成的Web应用程序也运行正常。

如果我将网站发布到远程服务器,则会收到“目录不存在的服务器错误。参数名称:directoryVirtualPath”。我假设这个错误说它无法找到填充了我的许多* .js文件的目录。我还假设这是因为它们没有发布,因为它们不是解决方案的一部分,即使它们驻留在中的文件夹是解决方案的一部分(它在解决方案资源管理器中只是空的) Visual Studio)。

如果我的假设是正确的,我该怎么做才能将这些文件添加到我的解决方案中,这样他们就可以在我的网络应用程序的其余部分发布,每次都用最少的努力?

如果我在假设中不正确,我可以做些什么来解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:1)

我从来没有找到一个好方法来解决这个问题。我在http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx找到了相似的信息,但我无法使其发挥作用。

相反,因为我知道输出文件的名称,所以我只是在我的项目中创建了这样一个空文件并引用了我需要的地方。然后我让预构建任务用外部缩小的版本替换该文件的内容,并根据需要与项目打包,因此它运行良好。

相关问题