locked
Different versions of POSfor.NET installed togheter RRS feed

  • Question

  • Hi, during my first experiments with different pos printers I encountered problems of compatibility with versions of POSfot.NET.

    OKI PT330 work with POSfor.NET 1.14

    EPSON TM-T20II work only with POSfor.NET 1.12

    EPSON FP90III work only with POSfor.NET 1.11

    It seems that if I need to use two of these printers together I have to install two versions of POSfor.NET but my test say that is not possible. Ok, who need two printers on the same pc? But I think that this problem can be extended with other type of devices.

    I would like to install different devices regardless of the version of installed POSfor.NET

    I have tried to write different projects and include in each one different versions of Microsoft.PointOfService.dll and Microsoft.PointOfService.ControlBase.dll. This however with one version of POSfor.NET installed becouse registry keys are needed for a correct functionality. The result is not good.

    Is there a way for resolve this problem?

    Thanks in advance

    Tuesday, July 21, 2015 8:45 PM

All replies

  • It would be better if Epson had an update Service Object that support 1.14. You might want to contact EPSON since they are active with POS for .NET.

    Sean Liming - Book Author: Starter Guide SIM (WEI), Pro Guide to WE8S & WES 7, Pro Guide to POS for .NET - www.annabooks.com / www.seanliming.com

    Wednesday, July 22, 2015 3:20 AM
    Answerer
  • I agree with you, it would be better, but the problem is not related only to Epson. I suppose that different producers have different development times and I think it's hard to expect them to be up to date. For the developer would be easier if different versions of POSfor.NET could coexist so can create software modules that can be activated depending on the hardware installed.

    So, is there any way for do that?

    Wednesday, July 22, 2015 5:59 PM
  • You point is well understood. I am not sure if the different POS for .NET library version can be on the system at the same time. I have never tried it.

    OPOS drivers should work fine with any version. Any Service Objects will have to match the version installed. This is were the work is to track down the POS devices that will work with the latest version. and work with other vendors to make sure they have updated solution.

    EPSON should come up with an updated release if they have not done so already.


    Sean Liming - Book Author: Starter Guide SIM (WEI), Pro Guide to WE8S & WES 7, Pro Guide to POS for .NET - www.annabooks.com / www.seanliming.com


    Friday, July 24, 2015 3:10 AM
    Answerer
  • Hi, I resume this thread because in last weeks I have implemented a group of libraries that use POSfor.NET 1.11, 1.12, 1.14 together. Although POSfor.NET installer allow only one of this versions at a time, the architecture seems to allow all versions infact use the same registry keys anche the configuration files have the same schema and location. So I've extracted from each gac installation the assemblies Microsoft.PointOfService.dll and Microsoft.PointOfService.BaseControl.dll and executed tests using assembly redirection. It works with each version individually. For using all versions together I've created a dll linked with each version and added, with other libraries, a software layer that decouple application from POSfor.NET using shared interfaces. The application have to create an instance of this new object called PosManager and ask it for detected devices. This informations can be easily showed in a configuration combobox for choose the version supported for each device accordingly with manufacturer specifications.

    Now i've this problem. In application config file I've to add following declarations for runtime assembly redirect.

      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PointOfService" culture="neutral" publicKeyToken="31bf3856ad364e35" />
          <codeBase version="1.11.0.0" href="POSfor.NET_1_11/Microsoft.PointOfService.dll" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PointOfService" culture="neutral" publicKeyToken="31bf3856ad364e35" />
          <codeBase version="1.12.0.0" href="POSfor.NET_1_12/Microsoft.PointOfService.dll" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PointOfService" culture="neutral" publicKeyToken="31bf3856ad364e35" />
          <codeBase version="1.14.1.0" href="POSfor.NET_1_14/Microsoft.PointOfService.dll" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PointOfService.ControlBase" culture="neutral" publicKeyToken="31bf3856ad364e35" />
          <codeBase version="1.11.0.0" href="POSfor.NET_1_11/Microsoft.PointOfService.ControlBase.dll" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PointOfService.ControlBase" culture="neutral" publicKeyToken="31bf3856ad364e35" />
          <codeBase version="1.12.0.0" href="POSfor.NET_1_12/Microsoft.PointOfService.ControlBase.dll" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="Microsoft.PointOfService.ControlBase" culture="neutral" publicKeyToken="31bf3856ad364e35" />
          <codeBase version="1.14.1.0" href="POSfor.NET_1_14/Microsoft.PointOfService.ControlBase.dll" />
          <publisherPolicy apply="no" />
        </dependentAssembly>
      </assemblyBinding>
      </runtime>

    POSfor.NET 1.12 don't work properly and when GetDevices is called it detect only OPOS devices and not those with ServiceObject. If in the app.config I leave the publisherPolicy applied, the problem disappear but that policy redirect version 1.11 to version 1.12 so the incapsulation are compromised. I suspect that this is related to the patch kb2755802 for version 1.12 that i must install for compatibility with .NET 4 but i don't know how to demonstrate.

    Pratically this system works with v1.11, part of v1.12 and v1.14 OR with v1.12 and v1.14, depending if publisherPolicy is applied or not.

    The question is, how can understant why version 1.12 don't accept publisherPolicy suppression and why with publisherPolicy suppressed detect only devices with OPOS drivers?

    It's not easy but thanks for any help.


    Friday, September 18, 2015 3:36 PM