Manifest problem

G

Guest

Hi

I have a problem with the development environment

I have a DLL (jproot.dll) versionned 1.9.0.33 that I have shipped to my customer

My customer made a DLL (cust.dll, versionned 1.2.3.4) that depend on jproot.dll
In the manifest of this cust.dll (ildasm), it is written that it depends on jproot.dll version 1.9.0.33, which is ok

I have an application (sample.exe) that depends on cust.dll

Since everything is well encapsulated, jproot.dll and sample.exe can evolve without functionnaly affecting cust.dll. And since cust.dll is build by my customer, I don't have the luxury to ask him to rebuild often

So when jproot.dll continues to evolve , I increment the version number (ex: 1.9.0.46). But when I try to rebuild sample.exe, the environment give me the following error

---
Error: The dependency 'jproot, Version=1.9.0.33, Culture=neutral' in project 'sample' cannot be copied to the run directory because it would conflict with dependency 'jproot, Version=1.9.0.46, Culture=neutral'
---

note that jproot version 1.9.0.33 doesn't exist anymore on my disk and this is happening because the environment reads the manifest of cust.dll and sees that there is a need for version 1.9.0.33 but would conflict with version 1.9.0.4

It make sence that this is happening because
- sample.exe requires 'jproot 1.9.0.46' and 'cust.dll 1.2.3.4
- and cust.dll requires 'jproot 1.9.0.33
and the environment doesn't know what to do about this

The workaround suggested in MSDN is not acceptable because it would require me to add an explicit reference to jproot.dll in sample project which would break encapsaluation from project perspective

In my case I would like the environment to discard the version information in the assemblies when resolving references. Is that possible

If not, is there a way to get around this? a config file? registry? project config

Thank
JPRoo
 
K

Kevin Yu [MSFT]

Hi JPROOT,

First of all, I would like to confirm my understanding of your issue. From
your description, I understand that you application is referencing cust.dll
which was provided by 3rd party. However, the cust.dll is referencing your
jproot.dll assembly. When you have upgraded jproot.dll on your machine. The
..exe application was unable to build. If there is any misunderstanding,
please feel free to let me know.

I have tried the senario on my computer, however, it seems that the error
cannot be reproduced. Could you let me know how the assemblies are
referenced in your project?

Generally, when we meet these kind of problems, we can redirect the
assembly versions in the config file. You can find more information about
redirecting version from the following link:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/htm
l/cpconassemblyversionredirection.asp

HTH. If anything is unclear, please feel free to reply to the post.

Kevin Yu
=======
"This posting is provided "AS IS" with no warranties, and confers no
rights."
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Top