I am developing and Office add in using AngularJS and the adal-angular template provided by Microsoft through the Yeoman Office generator.
After everything was configured correctly I published my manifest.xml to a file share. I then told Excel to trust this file share as an app catalog. I can run the add in just fine, using Excel.
Now, though the add in runs fine, I have no indication of errors or logging messages. If an error occurs, I can't see what actually happen, I can only see the .html file I'm currently loading. This might look like this:
It can't be true that I haven o way of logging, debugging or at least see errors when developing my add in.
As I'm using Gulp to serve the application, I have a command prompt running. It looks like this:
Shouldn't I be able to log in this window, and see errors whenever they occur?
If you want to debug in the Windows desktop versions of Excel/Word/PowerPoint, you can use the IE Developer Tools, which have a good debugger, console, DOM-explorer, etc:
Run the add-in
Go to System32/F12 on your machine
Run F12Chooser.exe
Click Refresh and wait a couple seconds
Choose the process you want to debug from your add-in
The main advantage here is that you can use the native Office clients with this debugging method. For testing in Office Online, Mr.P's answer will work well for you. Note also that the F12 Chooser is available starting in Windows 10.
-Michael Saunders, PM for Office add-ins
I've dealt with the pain of Office add-ins before. It's not a fun place to be. However, I tested out most of the work I was doing in two different ways throughout development:
1) I opened the inspector in Chrome and changed it to mobile view and then set the size to the average add-in size. I know it can change in size, but just to give a general look.
2) I used Office online to actually run my manifest.xml file and then just opened the browser console to see my logging. This was the best way for me to see how things were working. More details of that here.
Hope that helps.
Related
I work in a public sector university
I use selenium with C# for automating routine tasks. I have admin rights so I just develop
various win forms apps to do that. But most of my colleagues cant use such apps as they do not
have admin rights. The apps are so useful and time saving that I want it to share with all colleagues
But admin rights is the issue, so please direct me to a solution that can work completely on client side.
Plz also note that I cant create setups and ask networking staff to install it on all PCs as there are
around 150 of them, and also the apps often are updated every couple of months.
PhantomJS worked without requiring admin rights, but it is already paused, as per their official page, so the only hack to my mind is, ask networking staff to install visual studio (with C# setup) on all PCs, this way I can just hand over the apps to all and they can open and run from VS, instead of direct exe, and it will eliminate requiring updating of apps as users will just need to get the latest app folder. A down side is un necessary window of VS and the memory but the benefits would outweigh this issue.
I am using selenium to automate my application.. My applicaton works on IE only.. I dont have much scope for other browser..
but when my scripts are running if i do other activities like reading mails, or update QC in another window.. Those are breaking my scripts (no such element or no such window..) once in a while (mostly out of 10, 2 to 3 times i am facing this issue). But can not make system idle till my scripts are run as i do have other activities after started the script. How to stabilize this?? Any one facing these kind of issues??
Running Selenium tests locally using your one and only IE browser does come at the cost of having to not touch your mouse or keyboard during test executions. A way to get around this is to create one or more virtual machines. VirtualBox from Oracle is a popular choice but there are others. You need to install an operating system on your new virtual machine and odds are that your existing Windows license is single use. You can request an additional Microsoft Windows OS license from your IT department or simply buy one yourself for, what? $190? I have done that when the paper work at my client was unmanageable. My time is worth more than that.
Another alternative is to take advantage of 90 day free licenses from Microsoft.
Start your test on the virtual machine then change focus back to your desktop to do other work. I have even added code to the end of test logic to beep when the test completes so that I know when to expand my virtual machine.
Update
You should add an antivirus to that virtual machine. Safety first. :-)
Selenium does not support and non web-based applications, it only supports web based applications.
So if you are doing activities like reading mails and update QC in other window, you will not able to find the elements through selenium.
If you are facing some challenges with IE browser. Please refer this link:https://code.google.com/p/selenium/wiki/InternetExplorerDriver
There are following limitations are given below:
Some limitations of Selenium Automation tool are as follows:
It does not support and non web-based applications, it only supports web based applications.
Its and open source tool so in case of any technical issues you need to rely on the selenium community forums to get your issue resolved.
You need to know at least one of the supported language very well in order to automate your application successfully.
No inbuilt reporting capability so you need plugins like JUnit and TestNG for test reports.
Lot of challenges with IE browser.
i have never worked on windows iis, asp and mssql but now i am forced to do so.
the plot:
i have an asp mvc application (the exact folder tree copied from the old disabled server) and an mssql backup file (.bak). I have managed to restore the database and i have copied my application folder to httpdocs. BUT still...when i try to access the server it pops lots of errors. i know, lack of knowledge and app setup.
my question, in what order should i start setting up my app (what files, what settings..etc for a complete windows noob); i have no start point, i'm confused, put me on the track please. Any advice will be appreciated, any reference.
Keep in mind that i have advanced knowledge in apache server, php, mysql, html, css, javascript BUT ABSOLUTE ZERO in IIS,mssql,asp :D
PS: it's kind of urgent! and i have to learn as i go.
What kind of errors are you getting?
is an code error? or what?
in my experience, when you get a new windows hosting, or server, sometimes you need to activate .asp pages, since it reads only aspx by default, also, to see the code line errors you need to configure that, because normaly the errors are hidden.
to show errors on a server, you go to control panel, administrative tools, IIS, and then somewhere is the option to show errors on browser.
If you are in a hosting with plesk there is also an option to enable .asp pages and to show errors on browser.
I have created a Silverlight 4 application, that is running out of browser. As you will know, there is a function that is checking if a new version of the app is available and installing it.
But what if I want to only check for the update and not installing it?
Personally, I do not like applications that silently update themselves, downloading something from the internet. So I'd like to have the following mechanism.
- when the app starts, it checks if updates are available
- if so, I show a messagebox to the user, telling her that there is an update and that she can download and installing it via the update-button
- the user can now decide to update
Unfortunately, there seems to be no option to just checking for updates without actually downloading and installing it. Any ideas, how to achieve this?
Thanks in advance,
Frank
You can roll your own update detection, by having a small file on your server next to the XAP for your app, that contains the latest version. For example:
http://localhost/myawesomeapp.xap
http://localhost/myawesomeapp.xap.ver
When you want to check for updates without downloading them, you can always hit the .ver file, check the version listed in it and if newer then the current running app, show the Update button to the user.
Note that this approach also would allow you to create more advanced scenarios, like prompting the user to upgrade to a different version of the app (Pro for example) or that they need to upgrade their Silverlight to get the latest.
And if you have multiple apps, you can list all of them in that file and do cross-promotion between your apps.
When creating an auto updating feature for a .NET WinForms application, how does it update the DLLs and not affect the currently running application?
Since the application is running during the update process, won't there be a lock on the DLLs (because those DLLs will have to be overwritten during the update).
Usually you would download the new files into a separate area. Then shutdown and restart and at startup you look for and use the new files if found. Always keeping a last known working version on the side so that the user can revert to something that definitely works if the download causes problems.
ClickOnce is a good technology from Microsoft that does this for you and you can use it directly from Visual Studio 2008.
You'll have to shutdown your application and restart it, as other people have already commented.
I wrote an open-source code to do just that in a transparent mode - including an external update application to do the actual cold update. See http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/
The code is at http://github.com/synhershko/NAppUpdate (Licensed under the Apache 2.0 license)
I have a seperate 'launcher' application that checks for updates via a web service. If there are updates, it downloads them and then executes my application, which is in a seperate assembly.
The other alternatives are using things like ClickOnce, or downloading the files to a seperate area and restarting the app, as someone else mentioned.
Be warned about ClickOnce, though - it's not as flexible as it sounds. And if you deploy to a system that requires elevating your program to a higer security level to run, you might run into problems if you don't have a certificate for your app installed. I found it very difficult to get straight answers on the Internet to things like certificate management when it comes to ClickOnce. If you have a complex app, you may want to just roll your own updater, which is what I ended up having to do.
If you publish via ClickOnce, all of that tends to be handled for you. It has it's own pro's and con's but usually easier than trying to code it all yourself.
Both Wikipedia and 15seconds have decent info on using ClickOnce, how it works, etc.
As others have stated, ClickOnce isn't as flexible as rolling your own solution but it is a LOT less complicated. It has a small learning curve at first, but with pretty much everything bundled into Visual Studio and the use of Wizards, it usually doesn't take long to stumble onto a working solution.
As deployments get more complex (i.e. beyond than just having prerequisites or application code that needs updating) and you need to do a lot of post-install or pre-install tasks, there are things like WiX which give you somewhat of a hybrid solution between Windows Installer and ClickOnce, with the cost of flexibility being a much steeper learning curve.
The only reason I try to avoid custom installers is that you end up spending way too much time trying to get it just right to handle a bunch of different "What If" scenarios...
These days Windows can do such updates automatically for you with AppInstaller if your app is packaged in the MSIX package.
It downloads the new version of the app in another folder inside ProgramFiles\WindowsApps, then when a user runs the app via the start menu, the system knows what folder it should use. The previous version gets deleted when not in use.
If you want to know how to package your app this way I collected my findings in this answer.