在項目中加入一個targets檔案,取名my.build.targets 在targets檔案中加入內容:
<?xml version="1.0" encoding="utf-8" ?> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemGroup> <CityIndexJS Include="js/src/cityIndex/_*.js;js/src/cityIndex/i*.js;js/src/cityIndex/page.js;js/src/cityIndex/ready.js;" /> </ItemGroup><Target Name="BuildJS" Condition="'$(Configuration)' == 'Release'"> <Message Text="Building javascript files…… haha"></Message> <Packer OutputFileName="js\cityindex.js" Mode="JSMin" InputFiles="@(CityIndexJS)" Verbose="true" /></Target> <PropertyGroup> <WebConfigPath>$(SampleFilesDir)\Web.config</WebConfigPath> </PropertyGroup> <Target Name="UpdateReleaseWebConfig" Condition="'$(Configuration)' == 'Release'"> <Message Text="Updating web config…… haha"></Message> <UpdateWebConfig WebConfigPath="web.config" Debug="false" CustomErrorsMode="Remote"/> </Target></Project>
將SmallSharp檔案拷到一個目錄中,比如MyLib.dll\msbuild\smallsharp 下載地址 unload project , 並編輯專案檔 在專案檔的頂部加入
<Import Project="..\文檔\MSBuild\SmallSharp\MSBuild.Packer.Targets" /> <Import Project="js.build.targets" />
在專案檔底部加入
<Target Name="AfterBuild"> <CallTarget Targets="UpdateReleaseWebConfig" /> <CallTarget Targets="BuildJS" /> </Target>
使用msbuild執行,因為這裡使用了Configuration=release的模式,所以需要指定參數
msbuild my.csproj /p:Configuration=release
這個vs中直接編譯不會執行壓縮,只有通過msbuild才會執行