Click-Once is not so simple...

ok, here's the problem: i'm using VB.NET 2005 beta 2 all working nicely. i've made an app, debugged it and it runs all nice from the normal exe. but when i went to publish it, it seemed to work all fine until the installation page opened. i try to launch it but it says the "application is improperly formatted". clearly it isn't because i have run the bin exe many times. now, not only does the publishing not work, but when i go back to run the normal bin exe i get another error, once which has never appreared before! it compiles fine, BUT i receive an error saying that the project can't be run: "application configuration is incorrect". someone please tell me how to get around this bug. maybe there's some silly step i'm missing before publishing, but i thought the whole idea of "click-once" was great simplicity. this does not seem to be the case. could someone please help me with this problem. it is very important to me.
thanks in advance,

alex

[969 byte] By [AlexReg] at [2008-2-2]
# 1
Hi Alex,

In order to better understand the issue you're facing, can you post the error portion of the installation log? To access the log, click the 'Details' button on the error dialog that appears on install.

Thanks,
-Patrick Darragh
VB PM

PatrickDarragh at 2007-9-7 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 2

Hi,
Thanks for replying.
Here's the details:

PLATFORM VERSION INFO
Windows : 5.1.2600.131072 (Win32NT)
Common Language Runtime : 2.0.50215.44
System.Deployment.dll : 2.0.50215.44 (beta2.050215-4400)
mscorwks.dll : 2.0.50215.44 (beta2.050215-4400)
dfdll.dll : 8.0.50215.44 (beta2.050215-4400)
dfshim.dll : 2.0.50215.44 (beta2.050215-4400)

SOURCES
Deployment url : file:///C:/DOCUME~1/ALEX/LOCALS~1/TEMP/MyRPG%20Game%20Creator.application

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of C:\DOCUME~1\ALEX\LOCALS~1\TEMP\MyRPG Game Creator.application resulted in exception. Following failure messages were detected:
+ Exception reading manifest from file:///C:/DOCUME~1/ALEX/LOCALS~1/TEMP/MyRPG%20Game%20Creator.application: the manifest could be invalid or the file could not be opened.
+ The manifest has no XML signature.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.

WARNINGS
There were no warnings during this operation.

OPERATION PROGRESS STATUS
* [29 Apr 2005 19:39:48 +01:00] : Activation of C:\DOCUME~1\ALEX\LOCALS~1\TEMP\MyRPG Game Creator.application has started.

ERROR DETAILS
Following errors were detected during this operation.
* [29 Apr 2005 19:39:49 +01:00] System.Deployment.Application.InvalidDeploymentException (ManifestParse)
- Exception reading manifest from file:///C:/DOCUME~1/ALEX/LOCALS~1/TEMP/MyRPG%20Game%20Creator.application: the manifest could be invalid or the file could not be opened.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)
at System.Deployment.Application.DownloadManager.DownloadManifest(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ManifestType manifestType, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifestDirect(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, IDownloadNotification notification, DownloadOptions options, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadDeploymentManifest(SubscriptionStore subStore, Uri& sourceUri, TempFile& tempFile, IDownloadNotification notification, DownloadOptions options)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
Inner Exception
System.Deployment.Application.ValidationFailedException (Unknown subtype)
- The manifest has no XML signature.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.Manifest.AssemblyManifest.ValidateSignature(Stream s)
at System.Deployment.Application.ManifestReader.FromDocument(String localPath, ManifestType manifestType, Uri sourceUri)

COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.

Alex

AlexReg at 2007-9-7 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 3
The ClickOnce manifests associated with the application must be signed in order to be installed, but from the log it seems this is not occurring.

If you publish from VS with default settings using the Publish Wizard, the appropriate files will be signed with an auto-gen'd test certificate.

Can you go over the specific steps that you took to publish your application? Also, did you have VS 2005 Beta1 previously installed on your machine?

-Patrick

PatrickDarragh at 2007-9-7 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 4
Yes, I did previously have beta 1 installed. But I went through the required steps to uninstall AND I ran a cleaner. The debug-mode run was working before. It still compiles now but does not run ("application configuration is incorrect" error). my steps to click-once publish it were simply to goto the build menu, click publish, and follow through the brief wizard. after that the install page doesn't work and i can't even run my project normally (which i could easily do before). hope this clarifies things...
AlexReg at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 5
Please, does anyone know what to do?
This really matters to me... Sad
AlexReg at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 6
Alex,

It is common to experience non-determinstic errors like this after uninstalling Beta1 and installing Beta2. If you haven't already done so already, I would install beta2 on a clean machine (ie, on a machine with a fresh install of Windows).

-Patrick

PatrickDarragh at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 7
Patrick,

I am having the same problem as Alex. I did install Beta 2 on a machine that has never had Beta 1 installed on it and still hadthe same error.

Marie

Marie5 at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 8
Hi all,

Thanks Marie for adding that feedback. To fully understand what's the root cause, I will need the project that you're experiencing the issue with.

Can you open a bug at http://labs.msdn.microsoft.com/productfeedback/ and attach the project? Make a note in the bug that it should be assigned to 'pdarragh.'

Thanks,

-Patrick

PatrickDarragh at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 9

Does anyone know the answer to this thread? I am getting the same error.

PuckiePenn at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 10
Glad to know it's all not my problem at least... I would try it on a machine with no previous .NET betas, but unfortunately I only have a couple PCs, both with betas installed on them. I'd appreciate if someone else could upload the sample project/report the bug because I would not like to release project source at the moment.
Thanks for your help so far.

Alex

AlexReg at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 11
I just remembered that in the dialog box that appears when I try to run the project (in release mode), it says "see the application event log for more details". This may not solve the problem, but could someone please tell me how to view/enable this log. All other error messages don't tell me much about what's happening with Click-Once so maybe this will provide an insight.
By the way, can I just clarify the exact purpose of Click-Once. I know it is a simpe way to publish applications for setup & installation, but is it appropiate for a medium-sized game that we (the team) are developing? I could easily use a 3rd party program to create the installation, but I think that this would install the .NET framework a lot cleaner.
AlexReg at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 12
Hi Patrick,

I reported the bug and submitted my application files. Thanks!

Marie

Marie5 at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 13

Hi Alex,

I believe the cause of the problem is that your application name has spaces in the it. There is a known issue in Beta2 that this will cause the ClickOnce manifests to not be signed when published (a requirement for successful install).

Workaround: Remove the spaces from your application name and republish.

Application Event log

Go to your StartMenu -> Control Panel -> Administrative Tools -> Event Viewer -> Application to view the event logs.

ClickOnce Purpose

ClickOnce can be used in many windows client deployment scenarios. It is intended to be a safe installation service with automatic updates back to a server (see: http://msdn.microsoft.com/msdnmag/issues/04/05/ClickOnce/default.aspx)

The main decision point for you is whether your installation is low-impact, or whether it needs to do things like
-set a key/value in the registry
-register a file ext.
-install a driver
-register a globally shared component, etc

These types of operations cannot be done with ClickOnce, and a Windows Installer package would be better suited.

Cheers,
-Patrick Darragh
VB PM

PatrickDarragh at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...
# 14

Hi,
Thank you very much for the solution. I'm sure this small bug will be fixed in the final release. The event log viewer is also helpful but for some reason it doesn't show anything to do with VB.NET. Unfortunately, I still have a problem... I hope you can still assist me in solving it, as this is important to me and I would be very grateful.
I tried removing the whitespaces from the application name (there's many places where the name is defined but I'm pretty sure I changed the main ones) and I just get a new error when launching the program from the publish web page but the same error when trying to run the application in release mode. The new error states: "Unable to retrieve application. Files missing in deployment."
This is the error log:

PLATFORM VERSION INFO
Windows : 5.1.2600.131072 (Win32NT)
Common Language Runtime : 2.0.50215.44
System.Deployment.dll : 2.0.50215.44 (beta2.050215-4400)
mscorwks.dll : 2.0.50215.44 (beta2.050215-4400)
dfdll.dll : 8.0.50215.44 (beta2.050215-4400)
dfshim.dll : 2.0.50215.44 (beta2.050215-4400)

SOURCES
Deployment url : file:///C:/DOCUME~1/ALEX/LOCALS~1/TEMP/MyRPG_Game_Creator.application

IDENTITIES
Deployment Identity : MyRPG_Game_Creator.application, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2d42c8a437d355ca, processorArchitecture=msil

APPLICATION SUMMARY
* Installable application.

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of C:\DOCUME~1\ALEX\LOCALS~1\TEMP\MyRPG_Game_Creator.application resulted in exception. Following failure messages were detected:
+ Failed while downloading file:///C:/DOCUME~1/ALEX/LOCALS~1/TEMP/MyRPG_Game_Creator_1_0_0_0/MyRPG_Game_Creator.exe.manifest
+ Could not find a part of the path 'C:\Documents and Settings\Alex\Local Settings\TEMP\MyRPG_Game_Creator_1_0_0_0\MyRPG_Game_Creator.exe.manifest'.
+ Could not find a part of the path 'C:\Documents and Settings\Alex\Local Settings\TEMP\MyRPG_Game_Creator_1_0_0_0\MyRPG_Game_Creator.exe.manifest'.
+ Could not find a part of the path 'C:\Documents and Settings\Alex\Local Settings\TEMP\MyRPG_Game_Creator_1_0_0_0\MyRPG_Game_Creator.exe.manifest'.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.

WARNINGS
There were no warnings during this operation.

OPERATION PROGRESS STATUS
* [03 May 2005 20:03:27 +01:00] : Activation of C:\DOCUME~1\ALEX\LOCALS~1\TEMP\MyRPG_Game_Creator.application has started.
* [03 May 2005 20:03:27 +01:00] : Processing of deployment manifest has successfully completed.
* [03 May 2005 20:03:27 +01:00] : Installation of the application has started.

ERROR DETAILS
Following errors were detected during this operation.
* [03 May 2005 20:03:27 +01:00] System.Deployment.Application.DeploymentDownloadException (Unknown subtype)
- Failed while downloading file:///C:/DOCUME~1/ALEX/LOCALS~1/TEMP/MyRPG_Game_Creator_1_0_0_0/MyRPG_Game_Creator.exe.manifest
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState)
at System.Deployment.Application.DownloadManager.DownloadManifest(Uri& sourceUri, String targetPath, IDownloadNotification notification, DownloadOptions options, ManifestType manifestType, ServerInformation& serverInformation)
at System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState subState, ActivationDescription actDesc)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
Inner Exception
System.Net.WebException
- Could not find a part of the path 'C:\Documents and Settings\Alex\Local Settings\TEMP\MyRPG_Game_Creator_1_0_0_0\MyRPG_Game_Creator.exe.manifest'.
- Source: System
- Stack trace:
at System.Net.FileWebRequest.EndGetResponse(IAsyncResult asyncResult)
at System.Net.FileWebRequest.GetResponse()
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
Inner Exception
System.Net.WebException
- Could not find a part of the path 'C:\Documents and Settings\Alex\Local Settings\TEMP\MyRPG_Game_Creator_1_0_0_0\MyRPG_Game_Creator.exe.manifest'.
- Source: System
- Stack trace:
at System.Net.FileWebResponse..ctor(Uri uri, FileAccess access, Boolean asyncHint)
at System.Net.FileWebRequest.WrappedGetResponseCallback(Object state)
Inner Exception
System.IO.DirectoryNotFoundException
- Could not find a part of the path 'C:\Documents and Settings\Alex\Local Settings\TEMP\MyRPG_Game_Creator_1_0_0_0\MyRPG_Game_Creator.exe.manifest'.
- Source: mscorlib
- Stack trace:
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean useAsync)
at System.Net.FileWebStream..ctor(String path, FileMode mode, FileAccess access, FileShare sharing, Int32 length, Boolean async)
at System.Net.FileWebResponse..ctor(Uri uri, FileAccess access, Boolean asyncHint)

COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.

I hope you can understand this better than me.
Thanks again,

Alex

AlexReg at 2007-9-8 > top of Msdn Tech,Visual Basic,Visual Basic IDE...