Hi there,
I was wondering if anyone knew of a way to maintain compatability with
assemblies providing the interfaces remains the same? At the moment if I
re-compile an assembly without actually changing an interface it breaks
compatability, forcing all of my consuming assemblies to need recompiling.
I know this could be done with VB6, what about .NET?
Nick. 6 1665
If you are sure that you are not breaking compability (VS.NET, on the
contrary to VB6, does not offer yet a tool to verify this), you need to keep
the value of the AssemblyVersion attribute of the AssemblyInfo.vb file,
because by default it is changed on each build:
<Assembly: AssemblyVersion ("1.0.*")>
So, change it to, say:
<Assembly: AssemblyVersion ("1.0.0.0")>
and don´t change it until you break compatibility.
You should also add another attribute that is not added by default:
<Assembly: AssemblyFileVer sion("1.0.0.5") >
which is the classic Win32 file version (shown in Windows Explorer), not the
assembly version (shown in GAC viewer), and you change this on each build,
to be able to distinguish each build now that the assembly version is the
same (if ommited, the assembly file version is set to the assembly version).
--
Carlos J. Quintero
MZ-Tools 4.0: Productivity add-ins for Visual Studio .NET
You can code, design and document much faster. http://www.mztools.com
"Nak" <a@a.com> escribió en el mensaje
news:%2******** ********@TK2MSF TNGP09.phx.gbl. .. Hi there,
I was wondering if anyone knew of a way to maintain compatability with assemblies providing the interfaces remains the same? At the moment if I re-compile an assembly without actually changing an interface it breaks compatability, forcing all of my consuming assemblies to need recompiling. I know this could be done with VB6, what about .NET?
Nick.
Hi Carlos,
Excellent! Cheers.
Nick.
"Carlos J. Quintero [.NET MVP]" <ca*****@NOSPAM sogecable.com> wrote in
message news:O$******** ******@TK2MSFTN GP14.phx.gbl... If you are sure that you are not breaking compability (VS.NET, on the contrary to VB6, does not offer yet a tool to verify this), you need to keep the value of the AssemblyVersion attribute of the AssemblyInfo.vb file, because by default it is changed on each build:
<Assembly: AssemblyVersion ("1.0.*")>
So, change it to, say:
<Assembly: AssemblyVersion ("1.0.0.0")>
and don´t change it until you break compatibility.
You should also add another attribute that is not added by default:
<Assembly: AssemblyFileVer sion("1.0.0.5") >
which is the classic Win32 file version (shown in Windows Explorer), not the assembly version (shown in GAC viewer), and you change this on each build, to be able to distinguish each build now that the assembly version is the same (if ommited, the assembly file version is set to the assembly version).
--
Carlos J. Quintero
MZ-Tools 4.0: Productivity add-ins for Visual Studio .NET You can code, design and document much faster. http://www.mztools.com
"Nak" <a@a.com> escribió en el mensaje news:%2******** ********@TK2MSF TNGP09.phx.gbl. .. Hi there,
I was wondering if anyone knew of a way to maintain compatability with assemblies providing the interfaces remains the same? At the moment if I re-compile an assembly without actually changing an interface it breaks compatability, forcing all of my consuming assemblies to need recompiling. I know this could be done with VB6, what about .NET?
Nick.
Hi there,
Thinking more about this solution it doesn't seem as nice as I had first
thought. I would like to keep automatic versioning as I've relied on it for
quite a while now, and actually remembering to change the version number
when an interface changes will bound to be too risky for me. So I hunted
around some more and found that the app config file can solve this issue,
<?xml version="1.0"?>
<configuratio n>
<runtime>
<assemblyBindin g
xmlns="urn:sche mas-microsoft-com:asm.v1">
<dependentAssem bly>
<assemblyIdenti ty name="myshareda ssembly"
publicKeyToken= "mysharedassemb lykeytoken" />
<bindingRedirec t oldVersion="1.0 .0.0-1.0.99999.99999 "
newVersion="cur rentversion" />
</dependentAssemb ly>
</assemblyBinding >
</runtime>
</configuration>
So now I can keep compatability while retaining automatic versioning.
Nick.
"Nak" <a@a.com> wrote in message
news:O%******** ********@TK2MSF TNGP11.phx.gbl. .. Hi Carlos,
Excellent! Cheers.
Nick.
"Carlos J. Quintero [.NET MVP]" <ca*****@NOSPAM sogecable.com> wrote in message news:O$******** ******@TK2MSFTN GP14.phx.gbl... If you are sure that you are not breaking compability (VS.NET, on the contrary to VB6, does not offer yet a tool to verify this), you need to keep the value of the AssemblyVersion attribute of the AssemblyInfo.vb file, because by default it is changed on each build:
<Assembly: AssemblyVersion ("1.0.*")>
So, change it to, say:
<Assembly: AssemblyVersion ("1.0.0.0")>
and don´t change it until you break compatibility.
You should also add another attribute that is not added by default:
<Assembly: AssemblyFileVer sion("1.0.0.5") >
which is the classic Win32 file version (shown in Windows Explorer), not the assembly version (shown in GAC viewer), and you change this on each build, to be able to distinguish each build now that the assembly version is the same (if ommited, the assembly file version is set to the assembly version).
--
Carlos J. Quintero
MZ-Tools 4.0: Productivity add-ins for Visual Studio .NET You can code, design and document much faster. http://www.mztools.com
"Nak" <a@a.com> escribió en el mensaje news:%2******** ********@TK2MSF TNGP09.phx.gbl. .. Hi there,
I was wondering if anyone knew of a way to maintain compatability with assemblies providing the interfaces remains the same? At the moment if I re-compile an assembly without actually changing an interface it breaks compatability, forcing all of my consuming assemblies to need recompiling. I know this could be done with VB6, what about .NET?
Nick.
If you have the control over the apps that call your assembly that approach
will work too, but there are scenarios where you don´t know or control all
the applications that call your assembly, so you would use the other
approach in those scenarios...
--
Carlos J. Quintero
MZ-Tools 4.0: Productivity add-ins for Visual Studio .NET
You can code, design and document much faster. http://www.mztools.com
"Nak" <a@a.com> escribió en el mensaje
news:%2******** ********@TK2MSF TNGP15.phx.gbl. .. Hi there,
Thinking more about this solution it doesn't seem as nice as I had first thought. I would like to keep automatic versioning as I've relied on it for quite a while now, and actually remembering to change the version number when an interface changes will bound to be too risky for me. So I hunted around some more and found that the app config file can solve this issue,
<?xml version="1.0"?> <configuratio n> <runtime> <assemblyBindin g xmlns="urn:sche mas-microsoft-com:asm.v1"> <dependentAssem bly> <assemblyIdenti ty name="myshareda ssembly" publicKeyToken= "mysharedassemb lykeytoken" /> <bindingRedirec t oldVersion="1.0 .0.0-1.0.99999.99999 " newVersion="cur rentversion" /> </dependentAssemb ly> </assemblyBinding > </runtime> </configuration>
So now I can keep compatability while retaining automatic versioning.
Nick.
Hi there Carlos, If you have the control over the apps that call your assembly that approach will work too, but there are scenarios where you don´t know or control all the applications that call your assembly, so you would use the other approach in those scenarios...
ACK and appreciated. But I'm just using it to control plugins to help
prevent them from having to be recompiled every time my application
framework changes.
Probably in hindsight I would have drastically modified the way my
Framework is structured but unfortunately at the moment I need to assure
that the plug-ins will at least attempt to run. Maybe I could also check
what version they are compiled against and give the user the ability to only
use 100% upto-date plug-ins but maybe this gives a little too much control!
By the way, it's good to see you in this group, I remember using your
MZ-Tools for VB6, valuable asset that was!
Nick.
"Carlos J. Quintero [.NET MVP]" <ca*****@NOSPAM sogecable.com> wrote in
message news:Of******** ******@tk2msftn gp13.phx.gbl... --
Carlos J. Quintero
MZ-Tools 4.0: Productivity add-ins for Visual Studio .NET You can code, design and document much faster. http://www.mztools.com
"Nak" <a@a.com> escribió en el mensaje news:%2******** ********@TK2MSF TNGP15.phx.gbl. .. Hi there,
Thinking more about this solution it doesn't seem as nice as I had first thought. I would like to keep automatic versioning as I've relied on it for quite a while now, and actually remembering to change the version number when an interface changes will bound to be too risky for me. So I hunted around some more and found that the app config file can solve this issue,
<?xml version="1.0"?> <configuratio n> <runtime> <assemblyBindin g xmlns="urn:sche mas-microsoft-com:asm.v1"> <dependentAssem bly> <assemblyIdenti ty name="myshareda ssembly" publicKeyToken= "mysharedassemb lykeytoken" /> <bindingRedirec t oldVersion="1.0 .0.0-1.0.99999.99999 " newVersion="cur rentversion" /> </dependentAssemb ly> </assemblyBinding > </runtime> </configuration>
So now I can keep compatability while retaining automatic versioning.
Nick.
"Nak" <a@a.com> escribió en el mensaje
news:%2******** ********@TK2MSF TNGP10.phx.gbl. .. By the way, it's good to see you in this group, I remember using your MZ-Tools for VB6, valuable asset that was!
I have spent the last 3 years or so in forums and newsgroups about .NET
add-ins, and I became MVP for that, I will try to spend more time in general
..NET groups. Now you have MZ-Tools 4.0 for VS.NET, no longer free but quite
cheap, if you want to take a look. I remember that I had the same problem
that you because now the mztools4.dll assembly exposes its API to plug-ins
to provide operation extensions (yeah, plug-ins for a plug-in of VS.NET !)
and since mztools4.dll is not an exe, it can not use a config file, so I
have to use the approach that I suggested, keeping the AsssemblyVersio n
constant while maintaining backwards compatibility.
--
Carlos J. Quintero
MZ-Tools 4.0: Productivity add-ins for Visual Studio .NET
You can code, design and document much faster. http://www.mztools.com This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Ken Durden |
last post by:
I'm working on a client-server application where the client is
controlling two devices (aka servers) which both implement the same
interface contract.
We have a set of about 4 assemblies which specify the interfaces and
the data types which flow through the interfaces. Initially, we
thought this would be enough for the client to talk with the server.
In general it is, but when an exception is generated by the server it
fails to...
|
by: WStoreyII |
last post by:
I know that the main two browsers are ie and netscape. However, how do i know if browsers like aol and other abstract browser put out by isps like sbc and earthlink are compatable with asp.net. I would hate to make web pages that can not be viewed by customers using these mediums as most people who use computers in a more entertainment light use these generic browsers.
WStoreyII
|
by: SenthilVel |
last post by:
hi
I have my application built with Dotnet Framework 1.1 and now i can see most
of clients having both the versions 2.0 and 1.1 in their systems, i get an
issue when i run my 1.1 application .
what r the ways to achieve the forward compatability for 1.1 developed
applications ?
i know we can use the <strartup><supportedruntime> in the app.config ..
|
by: abbu |
last post by:
Hi,
Can anybody explain the difference between
standard and compatability mode compilatin in C++?
Regards,
abbu
|
by: David |
last post by:
I am trying to migrate a .net 1.1 Web Application to a 2.0 Web Application.
I am experiencing issues when putting a strongly typed dataset into session,
and then navigation to a page where aspcompat is set to "true".
I can reproduce the problem by creating a brand new web site project in
VS2005, and creating a new page where I set aspcompat=true. Then i create a
new named dataset class in solution explorer. I add an instance of this...
| |
by: Rich |
last post by:
I put together a simple test class libary (VB2005) with one class and one
function that takes an integer argument and adds 10 the argument and returns
that number. Then I created a simple VB2005 app to test my class library
function. I made a reference to testClassLib.dll in the new project. Then I
made a function calls in a button sub and wrote the results to the console.
This worked fine.
Now I am trying to add a reference to a...
|
by: internet.system.error |
last post by:
Hello,
I write the casual Java code, and to make life easier at work I´ve
decided to write a C# application that reads two excel files and does
the usual number crunching and spits out a new file.
However, I´m not really familiar with C# nor Visual Studio so before
buying an expensive programming environment, I´d like some advise....
The computer running the application has Windows XP Professional &
Excel 2002. The computer where I...
|
by: jsmall |
last post by:
Hi,
We currently have a fairly old product, which was originally only
compatible with SQL 2000.
When we upgraded our server to SQL 2005, the client product gave us a
"This product is not compatible with this version of SQL server"
error.
We put the server into SQL 2000 compatability mode, and things worked.
|
by: Bobby |
last post by:
Hi,
The organisation I work for is on the verge of buying Microsoft Office
2007 Pro Plus OLP NL. We currently use Office Pro 2003. Our business
system is written in Access 2003 with a SQL Server back end.
I've heard that it's possible that the version of Office we are buying
may have compatability issues with Access 2003. I find this hard to
believe, but does anybody know anything about this?
Thanks
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
| |
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: conductexam |
last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |