Archive

Archive for June, 2009

Problems with ClickOnce Deployments

June 21st, 2009 No comments

I’ve been fighting problems with my ClickOnce deployment. I’ve got an app that has 23 successful updates. Number 24 didn’t go as well. I started making major changes almost a month ago and I finished up a couple of the last minor fixes yesterday. The deployment uploaded fine, but it would not install on either my XP development machine or my Vista test platform. In the end, it was a couple simple changes to the app.manifest file. A some point, I had played with the ClickOnce settings. This messing about added extra info to the XML file and reverting back to “Full Trust” didn’t remove these edits.

Here’s the mainfest before I found a solution.

<?xml version="1.0" encoding="utf-8"?>
<asmv1 :assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyidentity version="1.0.0.0" name="MyApplication.app" />
  <trustinfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedprivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC Manifest Options
            If you want to change the Windows User Account Control level replace the
            requestedExecutionLevel node with one of the following.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedexecutionlevel level="requireAdministrator" uiAccess="false" />
        <requestedexecutionlevel level="highestAvailable" uiAccess="false" />

            If you want to utilize File and Registry Virtualization for backward
            compatibility then delete the requestedExecutionLevel node.
        -->
        <requestedexecutionlevel level="asInvoker" uiAccess="false" />
      </requestedprivileges>
      <applicationrequestminimum>
        <defaultassemblyrequest permissionSetReference="Custom" />
        <permissionset class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="none">
          <ipermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
          <ipermission class="System.Security.Permissions.KeyContainerPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
          <ipermission class="System.Security.Permissions.StorePermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
          <ipermission class="System.Net.WebPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
          <ipermission class="System.Diagnostics.EventLogPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
          <ipermission class="System.Data.OleDb.OleDbPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
          <ipermission class="System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
          <ipermission class="System.Security.Permissions.DataProtectionPermission, System.Security, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" version="1" Unrestricted="true" />
        </permissionset>
      </applicationrequestminimum>
    </security>
  </trustinfo>
</asmv1>

So here’s the complete working manifest file.

< ?xml version="1.0" encoding="utf-8"?>
<asmv1 :assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyidentity version="1.0.0.0" name="MyApplication.app" />
  <trustinfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedprivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC Manifest Options
            If you want to change the Windows User Account Control level replace the
            requestedExecutionLevel node with one of the following.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedexecutionlevel level="requireAdministrator" uiAccess="false" />
        <requestedexecutionlevel level="highestAvailable" uiAccess="false" />

            If you want to utilize File and Registry Virtualization for backward
            compatibility then delete the requestedExecutionLevel node.
        -->
        <requestedexecutionlevel level="asInvoker" uiAccess="false" />
      </requestedprivileges>
    </security>
  </trustinfo>
</asmv1>

It’s not the years. It’s the miles.

June 18th, 2009 No comments

Last weekend, I rode about 1200 miles through southern British Columbia. Scott and I left Saturday morning and returned on Monday. I had a good time. I have never been over near Osoyoos before so that was a new experience. I really enjoy my time in Canada. It’s good to get away. The map shows the actual route taken. The original plan lacked some of the zigzagging near Klickitat and in Seattle. I was frustrated by a large truck on SR14, which is why I lead us up to BZ Corner. And we managed to hit Seattle during rush hour. After a required stop at Dick’s Burgers on 45th, taking 99 south seemed more entertaining than sitting on I-5 with my foot down.

Here’s the map:

View Larger Map

Yesterday, I was hit by a car while riding into downtown. I was exiting 26 Hwy to go into the city. I was in the far right lane on a one-way street. The light was red. I was slowing to stop at the light. The light turned green and another driver who was 2 cars back in the queue, stopped in the middle lane, decided that she wanted to be in my lane without looking. I grabbed both brakes and locked my rear wheel before I hit her right rear quarter panel. Then I hit the pavement. I never made it to the while line. Unfun. Nothing was broken (on me). I did hit my helmet on the pavement and trashed about $1600 in armour in the process. The other driver admitted fault and we have the same insurance company.

The map is a sat photo of the intersection, if you are interested.

View Larger Map

I’m already analyzing my actions and I don’t think there was anything I could have done. I wasn’t speeding. In fact, I was slowing down to stop for the red light. The other driver saw the light turn green and jumped into my lane without a moment of notice. The only possible thing I could have done would have been to crank the bike to the right harder, but since I locked the rear wheel that wasn’t possible. I was already sliding against the slope of the pavement as the left lane sits a few inches lower than the right and the whole thing took place in a slight corner. There wasn’t enough time/space to let off the brake and reapply. I am sure there was something I could have done to not put myself in that situation, but I haven’t figured that one out just yet.

The bike is pretty beat up but the dealership says it is fixable. I need a new radiator, oil cooler, side panel, bar end, mirror, shift lever and a handful of other obvious parts. The real cost will not be known until they start digging into it. And dont’ forget to replace all of that damaged armour…

As for me, I’ve been directed to stay home for a couple days and load up on pain killers and muscle relaxers. Basically, I unsafe to drive a vehicle right now. Now if the headache would just go away…

So it really isn’t the years. It is the miles. One great weekend followed by a dumbass in a cage.

New Links

June 8th, 2009 No comments

I’ve been looking at Moo’s MiniCards. I don’t know why. I just have been. Maybe it is because I keep getting asked if I have a card at all of these geek things I have been attending. $20 for 100 sounds fair.

I ended up looking at Andre Jordan’s designs. I like minimalism. Einstein was right. (link)

I guess that’s part of why I enjoy the KTM so much…

Off to debug an Infragistics Ribbon control that crapped out during a major refactoring. KFLY is playing in the background. Once 2 comes, I’ll flip to Pandora or listen to MP3s.

Tags:

Rules

June 1st, 2009 No comments

I am learning that WinForms doesn’t like animations when the primary thread is occupied. A new rule to learn. I have been spending time cruising the net, reading up on threading in an attempt to solve my problem. Which is this: I have a dialog that shows a “waiting” graphic while work happens. The work does in happen, but the waiting graphic never updates. Does the graphic work? Yes. I know it works because I’ve displayed the image as a stand-alone item and everything is cool. More to learn. I’ll post some code to CodeKeep when I get it figured out.

I’m album mode today. Of course, this has rules too. Expect for the starting point I have only picked albums that I rarely listen to yet have owned more than a decade. Collections are not allowed. Full-length albums. Deep cuts, I guess you could call it. I started with the new G n’ R record, Chinese Democracy. Then I pulled up Fire Of Unknown Origin by Blue Oyster Cult. Followers have been Whiplash Smile by Billy Idol and War by U2. I wonder what else will come up. Bowie? I haven’t listened to Outside in a really long time. That was released in the 90s, 1995. Right?

Tags: