DLLs on ClickOnce deployment

Hi everyone,

I have the same error shown in this post:

https://community.dynamics.com/nav/f/34/t/278120

I saw that it must be a problem with the report viewer, and it is solved adding same dll files into the deployment. When I run the script in the azure VM to install the click once, it creates the “C:\inetpub\wwwroot\NAV” fodler with the deployment, and with a few DLLs.

I need some new DLLs on that folder. Which is the folder where the script takes the DLLs from to copy in “C:\inetpub\wwwroot\NAV”? I think that if I copy the needed DLL files in that folder, and after run the script, I will find the new DLLs on the deployment folder.

Am I right?

Thank you very much

Hi AitorNAV,

Exactly what error do YOU get when trying to print? And what does that have to do with ClickOnce deployment? And which version of NAV is this about? Did you install the prerequisites? And which OS and dot/net version?

Thanks for your answer Erik.

After working during all yesterday, I finally solved the issue. I’m going yo try to explain which was the issue.

I’m using NAV2018, and click once in a WIN10 PC. I wasn’t getting any error, the NAV just was closing.

In the post I added in my first message, I saw that t he problem was that the next files weren’t included in the clickOnce deployment:

Microsoft.ReportViewer.Common.dll

Microsoft.ReportViewer.Common.resources.dll

Microsoft.ReportViewer.DataVisualization.dll

Microsoft.ReportViewer.DataVisualization.resources.dll

Microsoft.ReportViewer.Design.dll

Microsoft.ReportViewer.Design.resources.dll

Microsoft.ReportViewer.ProcessingObjectModel.dll

Microsoft.ReportViewer.WebDesign.dll

Microsoft.ReportViewer.WebDesign.resources.dll

Microsoft.ReportViewer.WebForms.dll

Microsoft.ReportViewer.WebForms.resources.dll

Microsoft.ReportViewer.WinForms.dll

Microsoft.ReportViewer.WinForms.resources.dll

Microsoft.SqlServer.Types.dll

I’ve copied thsoe file into the clickOnce root folder, amnd use mage to create a new manifest and application. But I was getting a manifest error. I thought that the error was about the certificate (later I realised that no), so I decided to use the azure Vm scripts to create the new deployment. I modified the script to copy those files into the root, and in that moment, I realized that the amnifest error was happening because the DLls where also located into the language folders aparte from the rrot. I solved that issue, and everything started to work.

Now I see another smaller trouble. We have 4 laptops in our office. In 2 of them, everything works correctly, but in the other 2, when we try to print a report, we can see this error:

pastedimage1543996988788v1.png

“cannot represent the result of the report, following error: Cannot load the file or assembly XXX either non of its dependencies. The system cannot find the specified file”.

But now NAV is not clossing.

Quite strange, probably one problem in the laptops…

Thank you again!!!

I would also like to ask - why do you use clickonce at all? If you are only doing a limited number of installations - clickonce is total overkill. You can manually install 10 machines in less than one hour…

Sorry Palle, I don’t understand your point of view. What do you reccomend me to do?

I’m deploying clickOnce, because our customer will like to have NAV in different laptops uotisde the network, for example, at one.

I’m sorry, but I’m confused about what you are saying…

You should never have to install these files manually, even if using ClickOnce not. You need to do as I suggested, install the prerequisites first? One of them is the reportviewer, which has the files you list. If they are not on the laptop, then it will still not work.

As to what Palle say, then ClickOnce may be overkill. Even if it does say Click-Once - then you are still required to install the prerequisites. Plus it is a much more complex installation. And you ask in the developer forum, so to you it would be natural to use Containers for development. Technical infrastructure/install issues should be asked in the technical forum.

And with C/Side and the Windows client going away in years anyway, then they would be better of with the Web client instead. [emoticon:c4563cd7d5574777a71c318021cbbcc8]

To me Clickonce is being used in only very large installations with 100s of users. where you point a user to a website where they do their NAV installation by themselves.

In most cases with less installations it is way faster to the an installation image and install the client just as any other piece of software. So my question was really why do you specifically need clickonce?

Your seetup is that with a server running NAVuserPassword and clients when they start NAV then they have to type a userid and password because they are outside your network? IF thats the case…then it is easy

All you have to do is to install a certificate, install a client change the clientuserconfig file and you are good to go.

Thanks about your thoughts Erik. I understand about what you are saying of the WebClient. But this is a new installation in NAV 2018, and the WebClient in this version is not the best… I know that in the future the win client will dissapear, but I also know that this issue, will provoke lots of troubles and anger from some of our customers…

There is clearly something wrong with your GPO and manifest file if you are missing files. Se my comment below. You are probably doing something that in most cases are easy to do - in a very complex way with using click-once.

Thank you to Palle. I always thought that the best way to install the client outside the network was the clickOnce…

What you have to do is to start with an installation of your certificate from your click-once. Simple export it from an existing computer to a USB stick or something.

Install the certificat på doubleclicking on it. Remeber to save it as trusted root personal certificate.

Then edit the the clientusersettings.config file (select the right folder based upon user logged in).

C:\Users\Admin\AppData\Roaming\Microsoft\Microsoft Dynamics NAV\80\ClientUserSettings.Config

Modify the config-file

← Select the right Servicetier port (check with an existing installation)
← select the right service tier name. (check with an existing installation)

← because you can have many certificates installed. find the name of the certificate and type it here.

Start the client and the user needs to type a userid and password.

I am doing this all the time.

I’ve used the Windows client in other instalaltions,. mostly when the PCs are in the same network, or, when running a VPN.

Imagine I have the NavServiceCert on the installed on the server, and in the instance. If I need to Install the client into a laptop, I need to install the client from the DVD, right? And once installed, edit the clientusersettings file. Do I understand correctly? Of course, the certificate used in the server, should be also installed into the PC where the client will be installed.

But for example, imagine that our customer wants yo install NAV at home. Wouldn’t be easier to use click once? In this way, he wouldn’t need to modify any file or anything…

Yes you understand me correctly.

If a user wants to install on a machine at home. Yes then click-once would be easier… if you did not have so many troubles with it… And for what? One user of 1000s whom want to do that? It would be easier to ask them to come by with the computer at your office. Or to my… No company software should never be installed on a private computer.

Thanks for your advises and tips palle, really appreciated.

With my customers I can imagine different scenarios where they want to install clickOnce for example at home. We can think “he can connect with the WebClient…” But no, not in this cases

Thank you again!!!