473,387 Members | 3,787 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Embedding a resource at runtime

Hi there. Does anyone know if it's possible to embed a new resource into an
assembly at runtime as well as update an existing (assembly) resource. Any
assistance would be appreciated. Thanks.
Jun 6 '06 #1
11 3321
Dave,

Do you want to do this to an assembly that is loaded in the runtime? If
that is the case, then this is not possible. Changing the assembly at
runtime is a bad, bad idea. If you need to manage resources (and I use this
term not in the .NET space, but as a general term) in a dynamic manner, then
you should have some sort of storage solution to do that.

Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Dave Brown" <no_spam@_nospam.com> wrote in message
news:Ol**************@TK2MSFTNGP04.phx.gbl...
Hi there. Does anyone know if it's possible to embed a new resource into
an assembly at runtime as well as update an existing (assembly) resource.
Any assistance would be appreciated. Thanks.

Jun 6 '06 #2
> Do you want to do this to an assembly that is loaded in the runtime? If
that is the case, then this is not possible. Changing the assembly at
runtime is a bad, bad idea. If you need to manage resources (and I use
this term not in the .NET space, but as a general term) in a dynamic
manner, then you should have some sort of storage solution to do that.

Hope this helps.


Thanks for the feedback. In my particular case however, adding and updating
resources in the assembly (exe) itself would have been the simplest way to
go for my users. I wanted to avoid dealing with extraneous file(s) that is
and just ship one ".exe". Perhaps a religious issue but the specialized
nature of my application actually lends itself to this technique (it
involves the processing of resources). Since it's not doable however I'll
have to package them up another way. In any case, thanks again
(appreciated).
Jun 6 '06 #3
Dave,

It's one thing to process resources in an assembly that you actually
don't load in the CLR, but to do it in an assembly already loaded in the
CLR, that's just not feasible.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Dave Brown" <no_spam@_nospam.com> wrote in message
news:%2****************@TK2MSFTNGP04.phx.gbl...
Do you want to do this to an assembly that is loaded in the runtime? If
that is the case, then this is not possible. Changing the assembly at
runtime is a bad, bad idea. If you need to manage resources (and I use
this term not in the .NET space, but as a general term) in a dynamic
manner, then you should have some sort of storage solution to do that.

Hope this helps.


Thanks for the feedback. In my particular case however, adding and
updating resources in the assembly (exe) itself would have been the
simplest way to go for my users. I wanted to avoid dealing with extraneous
file(s) that is and just ship one ".exe". Perhaps a religious issue but
the specialized nature of my application actually lends itself to this
technique (it involves the processing of resources). Since it's not doable
however I'll have to package them up another way. In any case, thanks
again (appreciated).

Jun 6 '06 #4
> It's one thing to process resources in an assembly that you actually don't
load in the CLR, but to do it in an assembly already loaded in the CLR,
that's just not feasible.


I really didn't think so since updating a running executable isn't normally
viable as you said (but I'm fairly new to .NET so I chanced it). Do you know
off-hand how it can be done for an assembly that isn't currently loaded
(without relying on command line tools if possible - I normally prefer to
avoid shelling out to launch external utilities). Thanks.
Jun 6 '06 #5
Why don't you duplicate the EXE, embed the resources in the copy, and replace the running exe with the new one, when they exit the
application?

Cheers,

Stu

Nicholas Paldino [.NET/C# MVP] wrote:
Dave,

Do you want to do this to an assembly that is loaded in the runtime? If
that is the case, then this is not possible. Changing the assembly at
runtime is a bad, bad idea. If you need to manage resources (and I use this
term not in the .NET space, but as a general term) in a dynamic manner, then
you should have some sort of storage solution to do that.

Hope this helps.

Jun 6 '06 #6
That's a really bad idea.

What if there is a permission set granted to the assembly based on the
hash? Or if the assembly has a strong name? Verification of the assembly
goes out the window now.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com

"Stuart Carnie" <st***********@nospam.nospam> wrote in message
news:44**************@nospam.nospam...
Why don't you duplicate the EXE, embed the resources in the copy, and
replace the running exe with the new one, when they exit the application?

Cheers,

Stu

Nicholas Paldino [.NET/C# MVP] wrote:
Dave,

Do you want to do this to an assembly that is loaded in the runtime?
If that is the case, then this is not possible. Changing the assembly at
runtime is a bad, bad idea. If you need to manage resources (and I use
this term not in the .NET space, but as a general term) in a dynamic
manner, then you should have some sort of storage solution to do that.

Hope this helps.


Jun 6 '06 #7
I didn't say it was a good idea :)

I was providing some ideas, given the original question was regarding the possibility of embedding a new resource in their
*existing* executable. Yes, there are side effects, which you have duly pointed out - the assembly cannot be strongly named, and
it can not be verified, therefore posing a severe security risk.

Cheers,

Stu

Nicholas Paldino [.NET/C# MVP] wrote:
That's a really bad idea.

What if there is a permission set granted to the assembly based on the
hash? Or if the assembly has a strong name? Verification of the assembly
goes out the window now.

Jun 6 '06 #8
>I didn't say it was a good idea :)

I was providing some ideas, given the original question was regarding the
possibility of embedding a new resource in their *existing* executable.
Yes, there are side effects, which you have duly pointed out - the
assembly cannot be strongly named, and it can not be verified, therefore
posing a severe security risk.


Thanks for the suggestion. In addtion to the above issues however, it's an
unwieldy solution :) and one I doubt will even work. It's unlikely I can
copy a running executable without encountering some type of sharing
violation nor could I copy it back to itself for the similar reasons (so who
will do this copying). Even if it was doable, it would be a dangerous
venture trying to copy it back to itself while still running (proper
synchronization would be required but this is outside my control).
Jun 6 '06 #9
Actually, it is possible and various techniques are available to implement a "self deleting executable", see http://tinyurl.com/eb9o4.


Dave Brown wrote:
I didn't say it was a good idea :)

I was providing some ideas, given the original question was regarding the
possibility of embedding a new resource in their *existing* executable.
Yes, there are side effects, which you have duly pointed out - the
assembly cannot be strongly named, and it can not be verified, therefore
posing a severe security risk.


Thanks for the suggestion. In addtion to the above issues however, it's an
unwieldy solution :) and one I doubt will even work. It's unlikely I can
copy a running executable without encountering some type of sharing
violation nor could I copy it back to itself for the similar reasons (so who
will do this copying). Even if it was doable, it would be a dangerous
venture trying to copy it back to itself while still running (proper
synchronization would be required but this is outside my control).

Jun 6 '06 #10
> Actually, it is possible and various techniques are available to implement
a "self deleting executable", see http://tinyurl.com/eb9o4.


I quickly inspected some of these techniques and what I see is either
dangerous (relying on undocumented techniques and therefore subject to
failure), unsupported on all mainstream versions of Windows (or possibly
future versions), potentially open to failure after the next SP, and
generally cumbersome and unwieldy to implement. Moreover, these techniques
apply to raw Windows programs. .NET programs are platform neutral so it's
cleaner not to assume they're running on Windows (you would have to rely on
pure Windows techniques to pull these tricks off). Also note that deleting a
running executable once it's finished is likely easier than updating it.
Jun 7 '06 #11

"Stuart Carnie" <st***********@nospam.nospam> wrote in message
news:%2****************@TK2MSFTNGP02.phx.gbl...
I didn't say it was a good idea :)

I was providing some ideas, given the original question was regarding the
possibility of embedding a new resource in their *existing* executable.
Yes, there are side effects, which you have duly pointed out - the
assembly cannot be strongly named, and it can not be verified, therefore
posing a severe security risk.
Modifying resources doesn't affect whether the code is verifiable, does it?
It will, of course, invalidate the cached verification results.

Cheers,

Stu

Nicholas Paldino [.NET/C# MVP] wrote:
That's a really bad idea.

What if there is a permission set granted to the assembly based on
the hash? Or if the assembly has a strong name? Verification of the
assembly goes out the window now.


Jun 7 '06 #12

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Roose | last post by:
With some googling I have found these resources: http://docs.python.org/ext/win-dlls.html http://www.python.org/doc/faq/windows.html I have a large Win32/MFC/C/C++ application that has an...
1
by: amit | last post by:
Hello, I am currently studying how to embedd python. I am developing a graphical C++ application. My goal is to embedd python script that will control some kind of animation. I have some...
0
by: MikeY | last post by:
With Reference/Resource is there a way of embedding the .resource file within a folder of my application instead of having it in the main project /executing assembly area. i.e. if I have a folder...
2
by: Matt | last post by:
I'm working on a plug-in for an application called DesktopSideBar for Windows. It emulates to some degree the Longhorn sidebar. The SDK for DesktopSideBar supports .NET plug-in development through...
3
by: UJ | last post by:
I've got an image I want to embed in a dll to use on a screen later. I've got it in a resource file, got it to compile in to the dll. The problem is getting it back out. It seems like my problem is...
3
by: Praveen | last post by:
Hi, I have a control that currently embeds it's images and script files as resources (by marking them as 2.0's WebResourceAttribute) and lets the runtime handle the streaming of the files to the...
1
by: gavinpaterson | last post by:
Dear Pythoners, I am writing as I am having trouble embedding a Python program into a Win XP C++ console application. I have written a script file for importing and I am trying to use the...
2
by: Wilfried Mestdagh | last post by:
Hi, I create a new cursor like this: Bitmap bmp = new Bitmap(fileName); panel1.Cursor = new Cursor(bmp.GetHicon()); But now I want to embed the image in the executable. I have already add...
12
by: TS | last post by:
i have a need to possibly enable mutli language support. What benefit do i get by using a resource file instead of a custom xml solution? thanks!
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.