Web project compiler

May 30, 2009 at 11:02 PM

 

Hey Everyone,

I am excited to test out this framework, but I am getting an error when I run the project created by the Guidance automation. I checked the project settings and it says that the dll is being copied to the \bin directory. Does anybody else get this error or is just me?

 

Error 1 The command "del C:\Users\John Smith\Documents\Visual Studio 2008\Projects\Company.Product\Project.Web\Company.Product.Web\bin\ /q" exited with code 1. Company.Product.Web

 

Thanks,

Justin

 

Coordinator
May 31, 2009 at 6:54 AM

Hi jlmurphy

Solution for you is very simple:

1) Open web project and select properties. 2) On the build tab delete the pre build and post build scripts (they do copy NHibernate etc. .dll files to web bin)

3) !!! Attention! Now you have to append the references to all layers into your Web project, to be sure, that their latest version is copied to web bin dir!

 

Workaround:

Catharsis architecture is based on indpendent layers! Controllers project does not need to have reference on Business or Model projects! 'EveryOne' works only with interfaces.

The same goes for web layer! There is no need to have the reference to the Business, Data, Models or Controllers. That's cool but it brings the issue with moving the latest builds (of lower layers) to the bin folder. That's why we did appended this post build script.

If you will remove the script, and append the references to the Web projct (to get latest .dll 's coppied during every re-build or F5 click) - then, please, never use any functionality from them! Keep it independent.

I am sure it will help

Have a nice day

end Enjoy Catharsis

Radim Köhler

 

 

May 31, 2009 at 11:33 PM

Thanks Radim, your solution worked!

Coordinator
Jun 1, 2009 at 6:43 AM

Hi again

I do offer you the reason why the 'default' Catharsis implementation does not work for you:

 

There is a pre-build action:

del $(SolutionDir)Project.Web\$(SolutionName).Web\$(OutDir) /q

 

As you can see, there is nothing complicated.

1) Find the Solution Dir

in your case: C:\Users\***user***\Documents\Visual Studio 2008\Projects\Company.Product\

2) next - in solution folder 'Project.Web\' find the project called as solution with extension .Web == 'Company.Product.Web'

3) and delete everything in the bin folder

(Next post-build action will re-fill 'bin' with needed .dll's)

 

So the reason why it is not working could be:

1) SolutionName is not 'Company.Product' or

2) Web project is not named 'Company.Product.Web' or

3) the user account, which is trying to build the solution - does not have the access to the folder 'bin'

4) some other but similar reason :)

 

In fact, in our environment it is working (on many machines) but usually, we have some 'so called'

Workspaces

which are usually located in a different path then 'C:\Users\***user***\...'

In these situations, the script is working always.

 

If you'll uncover the reason why it was not working in your case, let me know. In next version (which is coming soon) we can fix it.

Enjoy Catharsis

Radim Köhler

 

PS: To have references in the Web project is good for automatic copying (done by Visual Studio), but very very very dangerous. Developers can use stuff from these libraries. And trust me - I do not know why - but if they can, they do it! Mostly on larger projects ...