一切都按预期工作,但我想改进.zip生成的目录结构.
当我创建一个部署包时,我在一个自定义目录中创建它可以正常工作,但它创建的.zip是在以下结构中:
content/c_c/users/pcName/documents/VS2010/Projects/ProjectName/obj/release/package/packageTmp
Run Code Online (Sandbox Code Playgroud)
只有在packageTmp目录中才能找到我想要的文件!
有没有办法让创建的zip不包含所有这些空目录?
我们使用ajaxmin从我们所有的.js文件中创建.min.js文件.我们编辑了项目的.csproj文件并添加了以下内容:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\MicrosoftAjax\ajaxmin.tasks" />
<Target Name="AfterBuild">
<ItemGroup>
<JS Include="**\*.js" Exclude="**\*.min.js" />
</ItemGroup>
<AjaxMin JsSourceFiles="@(JS)" JsSourceExtensionPattern="\.js$" JsTargetExtension=".min.js" />
</Target>
Run Code Online (Sandbox Code Playgroud)
当我们在工作站上构建站点并且可以在站点中使用.min.js文件时,这非常有用.当我们在此任务中检查此项目时,也会在msbuild服务器上运行,但是ajaxmin生成的.min.js文件不会复制到我们使用的tfs2010 Rolling Build的放置位置.这些.min.js文件也不包含在我们在此滚动构建期间创建的包中,并且也会复制到放置位置.只有包含在项目中的文件才会用于包并复制到放置位置.
我们用于创建包的MSBuild参数如下:
/p:DeployOnBuild=True /p:DeployTarget=MsDeployPublish /p:MSDeployPublishMethod=InProc /p:CreatePackageOnPublish=True /p:MSDeployServiceURL=localhost
Run Code Online (Sandbox Code Playgroud)
我尝试了一些额外的构建任务来将所有.min.js文件复制到创建包的位置.我还尝试了以下网址:http://sedodream.com/2010/05/01/WebDeploymentToolMSDeployBuildPackageIncludingExtraFilesOrExcludingSpecificFiles.aspx,以便在我的.csproj文件中包含以下文件:
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="**\*.min.js" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
Run Code Online (Sandbox Code Playgroud)
有没有其他人也有这个问题或有没有人知道如何在msdeploy包中包含*.min.js文件并使文件复制到放置位置?
我正在使用microsoft ajax minifier,我使用下面的代码来缩小CSS和JS文件,我希望只删除注释和空格.我不希望重命名或更改变量名称或函数名称.
我如何使用默认缩小的选项,这将删除我的CSS和JS文件中的空格和注释.我的.net实用程序代码如下所示....
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.IO;
namespace CallAjaxMin
{
class CallAjaxMin
{
static void Main(string[] args)
{
try
{
string sWebsiteScriptsFolder = @"D:\NewMerchandising\Javascript";
string[] strFiles = Directory.GetFiles(sWebsiteScriptsFolder);
foreach (string file in strFiles)
{
string sSourceFileName = file;
if (!((sSourceFileName == sWebsiteScriptsFolder + "\\eluminate.js") | (sSourceFileName == sWebsiteScriptsFolder + "\\EventMediaPlayer.js")))
{
string sDestFile = file;
ProcessStartInfo processinfo = new ProcessStartInfo(@"C:\Program Files\Microsoft\Microsoft Ajax Minifier\AjaxMin.exe");
processinfo.Arguments = "\"" + sSourceFileName + "\" -o …Run Code Online (Sandbox Code Playgroud)