Compartilhar via


ClickOnce Application Store and Issues

ClickOnce Application generally gets loaded under C:\Users\<Username>\AppData\Local\Apps\2.0 on Vista and

C:\Documents and Settings\<Username>\Local Settings\Apps\2.0 on Windows XP and 2003

To clear Clickonce application we could Clear this Folder or can use Mage -cc 

 

Store would generally have two Folder created one for Application information and other is for Data

The application Folder would create Random Folder name for two level and create Application folder under it with Version id

 

ClickOnce Application Target Location or storage structure could not be controlled outside. So Target customization is limitation in ClickOnce.

This is For a Security reson, so that ClickOnce remains in Lock Down environment per user base.

 

 

Some ClickOnce Store issues

1) Pass COM libraries with ClickOnce .Net application

 

 Reg-Free-COM to pass COM libraries
https://msdn.microsoft.com/en-us/magazine/cc188708.aspx

Instructions on creating manifest using Mage
https://msdn.microsoft.com/en-us/library/xc3tc5xx.aspx

However Visual studio doesn’t allow external Manifest during Deployment. Because it generates and stores the information automatically
So external manifest would be overwritten

To Build ClickOnce with command-line
https://msdn.microsoft.com/en-us/library/ms165431(VS.80).aspx

*However the easy way to transfer Prerequisite and control them is BMG tool.

 

2) ClickOnce Application created on .Net Framework 2.0 SP1 and The application is configured to allow URL parameters to be passed to the application. You pass different values to the URL parameters when you try to start the application Gives Error "You cannot start application <App_Name> from this location"

 

-To know more about Query Parameter . This issue is Bug and can be fixed with Hotfix

 

3) XML Serialization assemblies are not published via ClickOnce after installing VS2008 SP1

 

- To Workaround Please add this to SGen Task
<SGen
BuildAssemblyName="$(TargetFileName)"
BuildAssemblyPath="$(IntermediateOutputPath)"
References="@(ReferencePath)"
ShouldGenerateSerializer="$(SGenShouldGenerateSerializer)"
UseProxyTypes="$(SGenUseProxyTypes)"
KeyContainer="$(KeyContainerName)"
KeyFile="$(KeyOriginatorFile)"
DelaySign="$(DelaySign)"
ToolPath="$(SGenToolPath)"
SerializationAssembly="$(IntermediateOutputPath)$(_SGenDllName)”
>
If the serialization assembly already exists then Sgen does not create a new output populating the Serialization Assembly property and there is nothing to copy.
With this change the SerilizationAssembly is set by default so even if it does not create a new assembly the value is present to be added over to the dependency list and picked up by the Copy tasks

 

4) ClickOnce Application Created in visual studio 2008 which targets Framework 2.0, target machine will need framework 3.0 installed

Otherwise ClickOnce will give Error “Unable to install or run the application this Application requires that Windows Base 3.0.0 installed in GAC”

 

- ClickOnce Created Under VS2008 needs framework 3.0, So even if Build or Project targeted to Framework 2.0 will need framework 3.0 as prerequisite on Target machine.

For Prerequisite to be Count Use Setup.exe to install ClickOnce Application in place of .application file