Visual Studio Development Bookmark and Share   
 index > Visual Studio Guidance Automation Toolkit > GPState Blob Format
 

GPState Blob Format

Hi,

can someone tell me the exact format of the Blob representing an Asset?

I tried a base64 decoding.

I obtain this

"\0\0\0\0����\0\0\0\0\0\0\0\f\0\0\0sMicrosoft.Practices.RecipeFramework.VisualStudio, Version=1.3.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a\0\0\0AMicrosoft.Practices.RecipeFramework.VisualStudio.ProjectReference\0\0\0ZssetsolutionFolder\fIsWebProjectMata\0\0\0\0\0\0\0\0\rDeployProcess\0\0\0\0\0BLSpecific\\BLSpecific34\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"

from

AAEAAAD/////AQAAAAAAAAAMAgAAAHNNaWNyb3NvZnQuUHJhY3RpY2VzLlJlY2lwZUZyYW1ld29yay5WaXN1YWxTdHVkaW8sIFZlcnNpb249MS4zLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQEAAABBTWljcm9zb2Z0LlByYWN0aWNlcy5SZWNpcGVGcmFtZXdvcmsuVmlzdWFsU3R1ZGlvLlByb2plY3RSZWZlcmVuY2UEAAAABWFzc2V0DnNvbHV0aW9uRm9sZGVyDElzV2ViUHJvamVjdARkYXRhAQAAAQEBAgAAAAYDAAAAGUFkZFByb3h5QkxTcGVjaWZpY1Byb2plY3QAAAYEAAAAF0JMU3BlY2lmaWNcQkxTcGVjaWZpYzM0CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=

Reencoding base 64 with UTF8Encoding disrupts the gpstate file.

Can someone help me?

Thanks

Marco

Haplo_69  Tuesday, November 06, 2007 11:10 AM
Hi Marco,
you can read the gpstate using an XmlSerializer and the GuidancePackagesState* classes. Regarding the blob element is encoding using base64Binary.

hth.
jose.
Jose Escrich  Tuesday, November 06, 2007 10:15 PM

I'm trying to add a new recipe to an old project. I have an old solution and I have modified some of the projects templates, so the old projects lack some new asset references I added to the new project template.

In .gpstate file I have something like this

<Reference>
<AssetName>DeployProcess</AssetName>
<AppliesTo>BLSpecific\BLSpecific11</AppliesTo> <Blob>AAEAAAD/////AQAAAAAAAAAMAgAAAHNNaWNyb3NvZnQuUHJhY3RpY2VzLlJlY2lwZUZyYW1ld29yay5WaXN1YWxTdHVkaW8sIFZlcnNpb249MS4zLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQEAAABBTWljcm9zb2Z0LlByYWN0aWNlcy5SZWNpcGVGcmFtZXdvcmsuVmlzdWFsU3R1ZGlvLlByb2plY3RSZWZlcmVuY2UEAAAABWFzc2V0DnNvbHV0aW9uRm9sZGVyDElzV2ViUHJvamVjdARkYXRhAQAAAQEBAgAAAAYDAAAADURlcGxveVByb2Nlc3MAAAYEAAAAF0JMU3BlY2lmaWNcQkxTcGVjaWZpYzExCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Blob>
</Reference>

To add this reference to an old project in the solution I have changed the appliesto node innertext to the name of the old project and changed (with a binary editor)the project name into the base64 blob. Here is the new reference node

<Reference>
<AssetName>DeployProcess</AssetName>
<AppliesTo>BLSpecific\BLSpecific34</AppliesTo> <Blob>AAEAAAD/////AQAAAAAAAAAMAgAAAHNNaWNyb3NvZnQuUHJhY3RpY2VzLlJlY2lwZUZyYW1ld29yay5WaXN1YWxTdHVkaW8sIFZlcnNpb249MS4zLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iMDNmNWY3ZjExZDUwYTNhBQEAAABBTWljcm9zb2Z0LlByYWN0aWNlcy5SZWNpcGVGcmFtZXdvcmsuVmlzdWFsU3R1ZGlvLlByb2plY3RSZWZlcmVuY2UEAAAABWFzc2V0DnNvbHV0aW9uRm9sZGVyDElzV2ViUHJvamVjdARkYXRhAQAAAQEBAgAAAAYDAAAADURlcGxveVByb2Nlc3MAAAYEAAAAF0JMU3BlY2lmaWNcQkxTcGVjaWZpYzM0CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</Blob>
</Reference>

I injected this reference node in the gpstate file and BLSpecific34 project now can run DeployProcess Recipe.

If I try using this code

string decodedASCII = base64DecodeASCII(blob);

decodedASCII = decodedASCII.Replace("BLSpecific11", "BLSpecific34");

string encodedASCII = base64EncodeASCII(decodedASCII);

private string base64DecodeASCII(string data)

{

try

{

System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();

System.Text.Decoder asciiDecode = encoder.GetDecoder();

byte[] todecode_byte = Convert.FromBase64String(data);

int charCount = asciiDecode.GetCharCount(todecode_byte, 0, todecode_byte.Length);

char[] decoded_char = new char[charCount];

asciiDecode.GetChars(todecode_byte, 0, todecode_byte.Length, decoded_char, 0);

string result = new String(decoded_char);

return result;

}

catch (Exception e)

{

throw new Exception("Error in base64Decode" + e.Message);

}

}

private string base64EncodeASCII(string data)

{

try

{

byte[] encData_byte = new byte[data.Length];

encData_byte = System.Text.Encoding.ASCII.GetBytes(data);

string encodedData = Convert.ToBase64String(encData_byte);

return encodedData;

}

catch (Exception e)

{

throw new Exception("Error in base64Encode" + e.Message);

}

}

the new encoded blob cause an error loading the solution. Can you give me an help?

Haplo_69  Wednesday, November 07, 2007 11:21 AM
Hi Haplo,
Sorry for the delay, I'll try to reproduce your issue and I'll back to you as soon as possible.

jose.
Jose Escrich  Tuesday, November 20, 2007 8:58 PM

You can use google to search for other answers

Custom Search

More Threads

• Running recipe from another package?
• GAT Roadmap
• Factoring Factories :)
• Passing custom objects to t4 templates
• Tools.GenerateLocalResource
• Trying to better understand the CreateProjectAction?
• new to GAT
• Adding a Custom Reference to Infrastructure.Layout and Infrastruction.Shell
• Unable to update Guidance Automation Extensions to new version
• How can you use T3 templates in VS templates???