Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Installing my application with ClickOnce - missing dll message (although not requested)

I have done a clickOnce installer. It seems to be ok, but I have a little problem.

I have set as prerequisite sql server 2008 express.

If I change it to 2012, it install the prerequisites correctly, but, when it is starting to install my app, it gives error, searching for Microsoft.SqlServer.management.dmf version 10.0.0.0.

The weird point is that, reading this link, the version 10 is required for sql server 2008 (while 2012 asks for the version 11).

So, why does it asks for the version 10? I'am trying it on blank virtual machine, so I'm sure there aren't any stuff installed.

I have also read this, where the answerer said to go in Project Properties > Publish > Application Files and remove some libs (I have removed the microsoft.sqlServer libs). I have done it, but nothing! It is still asking for Microsoft.SqlServer.management.dmf. It is installed in the system with the shared management object, but why it asks for the version of sql server 2008?

How can, at least, discover who is needing it?

Below there is my application files in the Publish section. As you can see, I have excluded some libs. Before, they were set as prerequisite.

enter image description here

like image 562
Piero Alberto Avatar asked Sep 28 '22 18:09

Piero Alberto


2 Answers

Solved with this mapping in

  <runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.ConnectionInfo" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
        <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Diagnostics.STrace" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
        <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.SqlEnum" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Dmf" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.SqlClrProvider" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Management.SmoMetadataProvider" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Management.Sdk.Sfc" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Smo" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Management.SqlParser" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.ServiceBrokerEnum" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
like image 84
Piero Alberto Avatar answered Oct 06 '22 19:10

Piero Alberto


I fixed it by Include Microsoft.SqlServer.* in for Publish Status. project properties> publish > Application Files > Publish Status column select "Include" on all Microsoft.SqlServer.* files. In my case, it works on the next publish version right after this changes.

enter image description here

like image 37
Ricky Chan Avatar answered Oct 06 '22 18:10

Ricky Chan