Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / Languages / C# / March 2008

Tip: Looking for answers? Try searching our database.

ClickOnce Help

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Peter Carlson - 11 Mar 2008 15:55 GMT
Not sure if this is the right NG, if not please point me in the right
direction.

We are developing a clickonce installer for our program Here are my
basic questions:

1.  How can I really debug this?  Simply pressing F5 in VS2005, doesn't
really provide the same environment...for example no Http query string

2.  After publishing to the hard drive if I open publish.htm in IE and
then click on run, nothing happens - it's like it never opens the app.
If I use IE and go directly to the .application file it never opens.
Only if I publish to a website, this makes minor debugging a pain as I
have to repost for every little code change,

3.  Finally, the last question for now.  Our app needs to read the query
string.  in vs2005 I have set it as a full trust application.  When i
run it it generates this exception:
System.NullReferenceException ... Form1.GetQueryStringParameters()

and then the sQuery variable is empty as shown in the MessageBox.  I
have changed publish.htm to be:
directLink = "clickonceinstaller.application?server=foo&test=peter";

Code from form1.cs is:
NameValueCollection aParams;
string sQuery;

private void Form1_Load(object sender, EventArgs e)
{
  aParams = GetQueryStringParameters();
  MessageBox.Show(sQuery);
  if (aParams.Count == 0) { this.Close(); return; }
}

private NameValueCollection GetQueryStringParameters()
{
  NameValueCollection nameValueTable = new NameValueCollection();
  if (ApplicationDeployment.IsNetworkDeployed)
  {
    try
    {
      string queryString =
    ApplicationDeployment.CurrentDeployment.ActivationUri.Query;
      sQuery = queryString;
      nameValueTable =
    System.Web.HttpUtility.ParseQueryString(queryString);
    }
    catch (Exception exception)
      { MessageBox.Show(exception.ToString()); }
  }
  return (nameValueTable);
}

Thanks to all!
Peter
Marc Gravell - 11 Mar 2008 16:06 GMT
> 1.  How can I really debug this? [snip] for example no Http query string
> 3.  [snip] Our app needs to read the query string

Note you need to ensure that this is enabled (i.e. the app allows QS
args: Project Properties -> Publish -> Options -> Allow URL parameters
to be passed to application).
Once this is done, I use the following, which allows me to treat
command line args and QS args the same - and then I can debug by
setting the debug command line arguments:

public static string[] GetStartupArguments() {
           List<string> allOptions = new List<string>();
           try // command line
           {
               string[] options =
System.Environment.GetCommandLineArgs();
               if (options != null) { // strip the first (the exe
name)
                   int length = options.Length;
                   for (int i = 1; i < length; i++)
                       allOptions.Add(options[i]);
               }
           } catch { }
           try // query string
           {
               if
(System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
{
                   string[] options =
AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData;
                   if (options != null && options.Length > 0) {
                       foreach (string queryItem in new
Uri(options[0]).Query.TrimStart('?').Split('&')) {

allOptions.Add(System.Web.HttpUtility.UrlDecode(queryItem));
                       }
                   }
               }
           } catch { }

           return allOptions.ToArray();
       }
Peter Carlson - 11 Mar 2008 22:36 GMT
Marc,

The Properties page is what I was missing. Thanks
Peter

>> 1.  How can I really debug this? [snip] for example no Http query string
>> 3.  [snip] Our app needs to read the query string
[quoted text clipped - 38 lines]
>             return allOptions.ToArray();
>         }

Rate this thread:







Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.