mattbloke
mattbloke

Reputation: 1146

How to reference web resources from another project in Visual Studio

I'm trying to split out my web resources, images/JS/CSS into another project within my Visual Studio solution so that I can share this across all projects.

I've tried setting this up as per link below

How do you share scripts among multiple projects in one solution?

However I keep on getting

Web resource '/Scripts/myscript.js' was not found.

I'm using "add as link" to link to resources from different project but they don't see to get copied over on build.

Thanks

Upvotes: 1

Views: 1512

Answers (2)

mattbloke
mattbloke

Reputation: 1146

This is a better way of doing it.

Using information from

Copy file(s) from one project to another using post build event...VS2010

and

http://greenicicleblog.com/2010/12/01/link-whole-directories-into-visual-studio-projects/#comments

I created a folder called WebAssets along side my project. I copied all my scripts, css and images to this folder.

I then added

<Content Include="..\WebAssets\**\*.*">
  <Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
</Content>

to my csproj file

This worked when I published the site, but not after a build. The local webserver kept on complain about missing files.

So I added a post build event to project, like so.

<PropertyGroup>
  <PostBuildEvent>xcopy /S /Y "$(SolutionDir)WebAssets" "$(ProjectDir)"   </PostBuildEvent>
</PropertyGroup>

This copied all the files from the WebAssets folder to the correct location.

Upvotes: 1

mattbloke
mattbloke

Reputation: 1146

This example shoes the best way I have come up with so far

http://www.codeproject.com/Articles/12997/WebResource-ASP-NET-2-0-explained

However I'm not that keen on it because it means that I have to create many manual entries in the AssemblyInfo.cs file and then modify css and js to point images. Like so

<img src='<%=WebResource("MyWebResourceProj.MyResources.Test.gif")%>'>

Upvotes: 0

Related Questions