Long time lurker, first time poster.
Reference Information. I have an asp.net web form application that currently references a third-party assembly containing various web controls. Third party controls are sometimes used directly on different pages or are part of user controls that are used elsewhere. The application also uses custom server controls, which also extend various third-party controls. These user controls are also used in a similar way.
Link (s): Linked post , There are several others that discuss several versions of the assembly, but nothing was found where the referenced links contained webcontrols.
Problem. It was discovered that one of the third-party controls has a problem with IE10. This issue is addressed in the latest version of the third party. However, I cannot completely upgrade the entire application to the latest version of a third-party build.
Question: Can two versions of a third-party node be launched simultaneously?
Study. I took the assembly binding approach, as mentioned in several other posts regarding multiple versions of the same assembly:
<dependentAssembly>
<assemblyIdentity name="thirdParty" publicKeyToken="XXX"/>
<codeBase version="OldVersion" href="bin"/>
<codeBase version="NewVersion" href="2013/ThirdParty.dll"/>
</dependentAssembly>
</assemblyBinding>
I also referred to both assemblies in the project file and the alias of the new version of the assembly:
<Reference Include="ThirdParty, Version=OldVersion, Culture=neutral, PublicKeyToken=XXX, processorArchitecture=MSIL">
<SpecificVersion>True</SpecificVersion>
<HintPath>..\..\Library\ThirdParty.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ThirdParty, Version=NewVersion, Culture=neutral, PublicKeyToken=XXX, processorArchitecture=MSIL">
<SpecificVersion>True</SpecificVersion>
<HintPath>2013\ThirdParty.dll</HintPath>
<Private>False</Private>
<Aliases>newVersion</Aliases>
</Reference>
, , :
<%@Assembly Name="ThirdParty, Version=NewVersion, Culture=neutral, PublicKeyToken=XXX" %>
<%@Register tagPrefix="2013" namespace="ThirdPartyNamespace" Assembly="ThirdParty, Version=NewVersion, Culture=neutral, PublicKeyToken=XXX" %>
codebehind (newVersion - , ):
extern alias newVersion;
protected newVersion::ThirdParty.ControlName cbRangeType;
, , asp.net . CS0433. , cbRangeType .
\ AppData\Local\Temp\ ASP.NET\root\9f04cc99\85cc721e\assembly\dl3\5dc4ef04\77c80123_27b9ce01\ThirdParty.DLL
\ \Site\2013\ThirdParty.dll '
, , newVersion, :
Line 348: [System.Diagnostics.DebuggerNonUserCodeAttribute()]
Line 349: private global::ThirdParty.ControlName @__BuildControlcbRangeType() {
Line 350: global::ThirdParty.ControlName @__ctrl;
, BuildControl() ? , , ? .
,
Noobian