Assembly dependencies and MsBuild task

.NET obfuscator and automated error reporting

Moderators: Luke Jefferson, melvyn.harbour, dom.smith

Assembly dependencies and MsBuild task

Postby raffaeu » Fri Dec 23, 2011 4:04 pm

Hi everybody, I have sucesfully used your MsBuild task on multiple projects until the project does not have references to external .dlls
Right now I have the following application structure:
Code: Select all
- Solution
   - Project UI (EXE ClickOnce)
   - Domain (.dll)
   - Data Layer (.dll)
   - Service (.dll)

The EXE project is using all the mentioned .dlls but when TFS builds the project in the obj folder it does not include the dependencies, so SA bombs telling me that it can't locate the dependencies.
Now, if I use your MsBuild target script, it doesn't copy the dependencies but only the target project.
How do you sort out this issue on your side? Do you have a custom MsBuild <copy> command?
raffaeu
 
Posts: 20
Joined: Mon Dec 12, 2011 9:58 pm
Location: Bermuda

Postby raffaeu » Fri Dec 23, 2011 4:36 pm

Just to let you know, I got this problem fixed with the following technique.
This is my project structure in Visual Studio
Code: Select all
+ Solution Dir
   + UI Project (ClickOnce)
   + Domain project (.dll)
   + Data Layer project (.dll)
   + Service project (.dll)
   - .saprj file (in the root)

This is my .saprj file where I specify to TFS how to resolve dynamically the dependencies:
Code: Select all
          <Assembly AssemblyName="TestSA.DataLayer, Culture=neutral, PublicKeyToken=null" MandatoryPath=".\\TestSA.DataLayer\\obj\\Release\\TestSA.DataLayer.dll">
            <Merging />
            <Embedding />
          </Assembly>
          <Assembly AssemblyName="TestSA.Domain, Culture=neutral, PublicKeyToken=null" MandatoryPath=".\\TestSA.Domain\\obj\\Release\\TestSA.Domain.dll">
            <Merging />
            <Embedding />
          </Assembly>
          <Assembly AssemblyName="TestSA.ServiceLayer, Culture=neutral, PublicKeyToken=null" MandatoryPath="TestSA.ServiceLayer\\obj\\Release\\TestSA.ServiceLayer.dll">
            <Merging />
            <Embedding />
          </Assembly>

In this way I have a dynamic way of structuring my solution in TFS without the need to touch anything except the saprj file!
:D

PS: I hope this may help somebody else too.
raffaeu
 
Posts: 20
Joined: Mon Dec 12, 2011 9:58 pm
Location: Bermuda

Postby Brian Donahue » Tue Dec 27, 2011 2:10 pm

Hello,

If you're in that situation, setting a Mandatory Path for the assembly would be the way around it.

Thanks for your solution.
Brian Donahue
 
Posts: 6670
Joined: Mon Aug 23, 2004 10:48 am

Postby raffaeu » Wed Dec 28, 2011 8:05 pm

That really fixed my problem.
:wink:
raffaeu
 
Posts: 20
Joined: Mon Dec 12, 2011 9:58 pm
Location: Bermuda


Return to SmartAssembly 6

Who is online

Users browsing this forum: No registered users and 0 guests