Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

VS 2010. Post-build. Copy files in to multiple directories/multiple output path

I have a MVC project and I want to split its output.

I want to copy all DLL files of this project (all content from the directory Bin) to one directory, and all Views (content of the directory View) to another output directory.

Settings of the project in VS 2010 does not allow me to do that simply.

I may specify only one Output path in settings and I can't specify which directories or file types to copy and where.

I think that I should leave the output directory to its default and then I need to split the output like the way I want using Post-build command.

Maybe someone did something similar and have any ideas how to do it best?

like image 688
angularrocks.com Avatar asked Dec 01 '10 12:12

angularrocks.com


People also ask

How do I change the build output path in Visual Studio?

Right-click on the project node in Solution Explorer and select Properties. Expand the Build section, and select the Output subsection. Find the Base output path for C#, and type in the path to generate output to (absolute or relative to the root project directory), or choose Browse to browse to that folder instead.

What is Copy to Output directory?

"Copy to Output Directory" is the property of the files within a Visual Studio project, which defines if the file will be copied to the project's built path as it is. Coping the file as it is allows us to use relative path to files within the project.

Which of the following target creates an output folder for storing the files generated during the build?

The root of the uncompressed files tree is formed by a subfolder called Target System in the package's output folder; this corresponds to the Target System root node on the Files and folders project page. The other folders are created under the Target System subfolder.


2 Answers

The solution is

1) Set Output Path to directory where you want to copy your *dll files in project properties

2) Using post-build event to copy the content of the directory View to whatever directory you want

in my case

1) Output path i set to

..\MyDestinationProjectName\Bin\

2) Post-build event to copy View directory looks like this

xcopy "$(ProjectDir)\Views" "$(SolutionDir)\MyDestinationProjectName\Plugins\Views\$(ProjectName)\" /s /i /y

like image 67
angularrocks.com Avatar answered Nov 02 '22 21:11

angularrocks.com


This should be a comment to @caiosm1005, but I lack points. As indicated by @Riapp use the xcopy command. A detailed explanation of the switches can be found here Xcopy and Xcopy32 Switches

My solution was: xcopy "$(TargetDir)$(TargetFileName)" "C:\Mydestination" /s /i /y

The TargetDir contained the full path to the compiled file and the TargetFileName is the combination of TargetName and TargetExt. Do not add a backslash separator after a directory variable e.g. $(TargetDir)\$(TargetFileName) will fail because it will be interpreted as "TargetName**\\** TargetExt".

Once you look at the values in the Macros it should be easy to choose what you want. Remember you need to do this on each project within your solution. The build events can be found by right clicking on the project, selecting properties and then choosing the Build Events tab.

like image 34
Bill Kidd Avatar answered Nov 02 '22 19:11

Bill Kidd