My web project in Visual Studio 2010 has post-build events that copies files from a folder into the bin directory of the web project. But when I publish my site, MSBuild seems to ignore the post-build events and these files are NOT copied.
The solution is to create a BAT file that executes from a MSBuild Target. I called my BAT file PostBuildEventPublish.bat and it lives in my solution folder. This is the BAT file contents:
xcopy "%1References\UmbracoCourier.lic" "%2" /y
xcopy "%1References\jumps.umbraco.usync.dll" "%2" /y
The parameters %1 and %2 are input from the MSBuild csproj file. In VS2010 unload your web project and edit the project then insert this Target (at the bottom):
<Target Name="AfterPublish" AfterTargets="CopyAllFilesToSingleFolderForPackage">
<Exec Command="$(SolutionDir)References\PostBuildEventPublish.bat "$(SolutionDir)" "$(ProjectDir)obj\$(Configuration)\Package\PackageTmp\bin"" />
<Message Importance="Normal" Text="Finished PostBuildEventPublish.bat" />
</Target>
Obviously change to the paths you want to use.
As you can see parameter %1 = $(SolutionDir)
and parameter %2 = $(ProjectDir)obj\$(Configuration)\Package\PackageTmp\bin
You will notice that my Target always gets executed before the actual publish files are copied.
C:\Dev\Puma\Main\References\PostBuildEventPublish.bat "C:\Dev\Main\" "C:\Dev\Puma\Main\Web\obj\Debug\Package\PackageTmp\bin"
C:\Dev\Puma\Main\References\UmbracoCourier.lic
1 File(s) copied
C:\Dev\Puma\Main\References\jumps.umbraco.usync.dll
1 File(s) copied
Finished PostBuildEventPublish.bat
Publish Pipeline Deploy phase Pre-Deploy CopyAllFilesToOneFolder Stage
Deleting existing files...
Publishing folder /...
Publishing folder App_Browsers...
Publishing folder App_Data...
Publishing folder App_Data/packages...
Publishing folder App_Data/packages/created...
Publishing folder App_Data/packages/installed...
...
Publishing folder uSync/Template/ZMag...
Publishing folder Views...
========== Build: 5 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Publish: 1 succeeded, 0 failed, 0 skipped ==========
So parameter %2 is where the magic happens. Here we copy the files into the temp publish folder and when Publish completes copying the files to the actual Publish folder these post-build files will also be copied.
Showing posts with label target. Show all posts
Showing posts with label target. Show all posts
Friday, 14 March 2014
Thursday, 9 June 2011
Could not load file or assembly 'XXXXX' or one of its dependencies. An attempt was made to load a program with an incorrect format.
This started happening all of a sudden when I tried to build or rebuild my VS2010 solution. This was because some of the projects in the solution target different platforms (mixed platforms).
I fixed this by going to the Configuration Manager... which is in the drop-down of your configurations (Debug, Release etc.) in VS2010. Then I set "Active solution platform" drop-down to "Any CPU".
I rebuilt the solution and it succeed in compiling.
I fixed this by going to the Configuration Manager... which is in the drop-down of your configurations (Debug, Release etc.) in VS2010. Then I set "Active solution platform" drop-down to "Any CPU".
I rebuilt the solution and it succeed in compiling.
Labels:
any cpu,
build,
configuration manager,
incorrect format,
platform,
target,
vs2010
Subscribe to:
Comments (Atom)