Fix issue with virtual paths

Deals with two issues that I found:
- When the file being linked is already a link from another project - using projectFile.VirtualPath instead of calculating the directory by substringing seems to work better
- Properly set the build action on added files