|
What application are you using to create the setup-package? Most of them allow the inclusion of custom setups or msi-packages that can get installed along the application.
Alternatively, you could check the registry whether B is installed under the key
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
If it's not, launch setup B, wait until it completes, and relaunch the A-setup. You'd need the ability to launch a custom application from your setup for this.
I are Troll
|
|
|
|
|
Currently I am using Visual Studio 2008 deployment setup for making an installer file. Please recommend me some good msi maker if you have one.
I am using following RegKey:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\MY_Prerequisite_application
Can you please tell me how to "If it's not, launch setup B, wait until it completes, and relaunch the A-setup. You'd need the ability to launch a custom application from your setup for this."
modified on Saturday, September 19, 2009 1:06 AM
|
|
|
|
|
Raj Jayaswal wrote: Please recommend me some good msi maker if you have one.
I haven't used those tools for a while. You might want to check out this site[^], has a lot of neatly categorized answers
Raj Jayaswal wrote: If it's not, launch setup B, wait until it completes, and relaunch the A-setup. You'd need the ability to launch a custom application from your setup for this.
The Visual Studio template doesn't have an easy option to launch one of the deployed files before the setup starts. Anyway, there seems to be a better solution;
Setup B would become a Merge Module[^], so that you can add it to your own setup. Once you got a Merge Module, add it to the setup.
Hello World
|
|
|
|
|
Still the problem remains same.
I have created a merge module in my solution, added the prerequisite B.exe to it and then added the .msm file to my setup project.
|
|
|
|
|
Like I already said, I haven't done this in a while and you'd have to put some extra research in it.
Anyway, there's an article on CodeProject[^] that explains how this can be done.
I are Troll
|
|
|
|
|
Thanks for the reply.
This article only explains how to add the prerequisites which are listed over there.
Is there any means by which by which I can add my prerequisite application to that list?
|
|
|
|
|
Raj Jayaswal wrote: Is there any means by which by which I can add my prerequisite application to that list?
Yes, by putting your Merge Module in this directory;
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages"
(source[^])
I are Troll
|
|
|
|
|
Hi, thanks. I think I am close to the solution.
One more thing. The article you referred to me asks me to copy my exe to the bootstrap folder location and write a .xml file in it. Please verify whether I am writing the correct code in it or not.:
<?xml version="1.0" encoding="utf-8"?>
<Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="PrerequisiteName">
<RelatedProducts>
<DependsOnProduct Code="Microsoft.Net.Framework.3.5" />
<DependsOnProduct Code="Microsoft.Windows.Installer.3.1" />
</RelatedProducts>
<PackageFiles>
<PackageFile Name="PrerequisiteName.exe" />
</PackageFiles>
<InstallChecks>
<ExternalCheck Property="PrerequisiteName" PackageFile="PrerequisiteName.exe" />
</InstallChecks>
</Product>
Thanks
|
|
|
|
|
The best verification is a test. I'm not the author of the article, and I haven't created any setups recently.
I are Troll
|
|
|
|
|
No worries. Thanks you Eddy
|
|
|
|
|
I'm looking for a .NET (much preferably open source in C#) library for dealing with fixed length field text files. It wouldn't be too much to write one, but existing, tested work is always nicer, to start with.
I will be extracting data in fixed length fields from files produced by a PBX. Each PBX has its own file format, as well a set of record formats. I'm looking for a library with a nice a simple way of using dynamic file and record formats, e.g. read from an INI or XML file.
I have been trying for weeks to get this little site indexed. If you wonder what it is, or would like some informal accommodation for the 2010 World Cup, please click on this link for Rhino Cottages.
|
|
|
|
|
Hi Brady,
I was told Google insists XHTML to be correct before it is willing to index.
yours isn't, see here[^].
So IMO it isn't about meta tags. yet.
Luc Pattyn
Have a look at my entry for the lean-and-mean competition; please provide comments, feedback, discussion, and don’t forget to vote for it! Thank you.
Local announcement (Antwerp region): Lange Wapper? Neen!
|
|
|
|
|
Ah, thanks. I'll fix all those train smash errors and hopefully placate the Might One. I just wonder why they couldn't tell me in my Webmaster Tools data.
I have been trying for weeks to get this little site indexed. If you wonder what it is, or would like some informal accommodation for the 2010 World Cup, please click on this link for Rhino Cottages.
|
|
|
|
|
Hi Brady,
There is a library here on CP that does fixed length or delimited files.
Search the articles for FileHelpers. I would give you a link but I'm stuck on 53.6 Kbs for the moment and everything takes so much time that I can't be arsed!
Henry Minute
Do not read medical books! You could die of a misprint. - Mark Twain
Girl: (staring) "Why do you need an icy cucumber?"
“I want to report a fraud. The government is lying to us all.”
|
|
|
|
|
Hi,
I have a .net solution that contains Windows Service Application. This application has app.config file that stores the connection strings and Appsettings. To encrypt these sensitive information, i am using the protectsection and unprotectsection with 'RsaProtectedConfigurationProvider'. These methods are written in a class "UsingRsaProtectedConfigurationProvider", in the WindowService project.
I have created a console application in the same solution. These console application calls the protectsection() method of class "UsingRsaProtectedConfigurationProvider" while encrypting. These console application is executed first to encrypt the app.config values.
However, when i start the windows service, it gives me an error "Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened."
I am pasting the inner exeception here. Please help me as i am unable to proceed.
<Snip>
System.Configuration.ConfigurationErrorsException was unhandled by user code
Message="Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened. (D:\\ContentIngestionTools\\RSSIngestorWS\\bin\\Debug\\NDNrssIngestor.exe.Config line 16)"
Source="System.Configuration"
BareMessage="Failed to decrypt using provider 'RsaProtectedConfigurationProvider'. Error message from the provider: The RSA key container could not be opened."
Filename="D:\\ContentIngestionTools\\RSSIngestorWS\\bin\\Debug\\NDNrssIngestor.exe.Config"
Line=16
StackTrace:
at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
at System.Configuration.BaseConfigurationRecord.GetSection(String configKey, Boolean getLkg, Boolean checkPermission)
at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName)
at System.Configuration.ConfigurationManager.GetSection(String sectionName)
at System.Configuration.ConfigurationManager.get_AppSettings()
at System.Configuration.ConfigurationSettings.get_AppSettings()
at RSSIngestorWS.RSSService.OnStart(String[] args) in D:\ContentIngestionTools\RSSIngestorWS\RSSService.cs:line 49
at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
InnerException: System.Configuration.ConfigurationErrorsException
Message="The RSA key container could not be opened."
Source="System.Configuration"
BareMessage="The RSA key container could not be opened."
Line=0
StackTrace:
at System.Configuration.RsaProtectedConfigurationProvider.ThrowBetterException(Boolean keyMustExist)
at System.Configuration.RsaProtectedConfigurationProvider.GetCryptoServiceProvider(Boolean exportable, Boolean keyMustExist)
at System.Configuration.RsaProtectedConfigurationProvider.Decrypt(XmlNode encryptedNode)
at System.Configuration.ProtectedConfigurationSection.DecryptSection(String encryptedXml, ProtectedConfigurationProvider provider)
at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
at System.Configuration.Internal.DelegatingConfigHost.DecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfigSection)
at System.Configuration.BaseConfigurationRecord.CallHostDecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfig)
at System.Configuration.RuntimeConfigurationRecord.CallHostDecryptSection(String encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedConfig)
at System.Configuration.BaseConfigurationRecord.DecryptConfigSection(ConfigXmlReader reader, ProtectedConfigurationProvider protectionProvider)
InnerException:
</Snip>
|
|
|
|
|
Hi All,
I am new to this forum. We did one project in vb.net. I do not know how to prevent from decompilation? One way is there to prevent, is using third party softwares but i do not want to use those softwares. Is there any way to prevent through assemply level coding and from any way means without using third party softwares? Please give me some solution to prevent my code from decomipilation.
Thanks in Advance,
Savitri
|
|
|
|
|
savitri wrote: how to prevent from decompilation?
Simply put, you can't. Even an obfuscator won't prevent it, only make the code more difficult to read.
only two letters away from being an asset
|
|
|
|
|
If you are having Visual Studio its having a obfuscation tool thats Dotfuscator.By using that you can obfuscate your code.It doesn't means that your code is 100% safe but dotfuscator will make your code difficult to understand after decompilation.So you can try that.
|
|
|
|
|
By design .NET embeds rich Meta data inside the executable code using MSIL. Anyone can easily decompile your DLL back using tools like ILDASM (owned by Microsoft) or Reflector for.NET which is a third party. Secondly there are many third party tools which make this decompiling process a click away. So any one can easily look in to your assemblies and reverse engineer them back in to actual source code and understand some real good logic which can make it easy to crack your application.
The process by which you can stop this reverse engineering is using “obfuscation”. It’s a technique which will foil the de compilers. There are many third parties (XenoCode, Demeanor for .NET) which provide .NET obfuscation solution. Microsoft includes one that is Dotfuscator Community Edition with Visual Studio.NET
lklklhjsdg
|
|
|
|
|
Dear's
ALL
From where we can Complete
Microsoft Office SharePoint Server Certification(MOSS) in development
or The Microsoft Certified Technology Specialist (MCTS)
Inform me and Certification fee,Books.
|
|
|
|
|
Did you think of asking Microsoft?
|
|
|
|
|
There is a SharePoint forum here
only two letters away from being an asset
|
|
|
|
|
Hi,
I am working on shared add-in in c# for Excel. Let us consider 3 components A,B,C. Where A is a Shim,B is Shared an add-in(used IDTExtensibility interface) which creates all tool bars, menu items for Excel and C is an automation add-in which contains UDFs.
I have static property in Automaion add-in(C) which set/gets Excel Application object. Whenever OnConnection(..) of shared add-in is called from the framework, I am setting the Excel application object using this property. So When I type some UDF in Excel, it uses this Excel application object for further work on Excel.
Recently I tried to remove the Shim and put the VSTO on it. When I use VSTo, it doesn't use shared add-in.Here also I set the Excel application object by using static property. Now I have I enabled this Auotomation add-in(add-in->Options->Automation Tab).But when I type some UDF in Excel cell, excel object is not available that is set from VSTO.How do I pass reference to Excel object to Automation add-in so that the same Excel Object is available in Automation add-in when we type some UDFs.
What I observed here is VSTO and Automation add-ins are working in different AppDomains.
Please help me.
Thanks.
|
|
|
|
|
|
I am sending objects across the wire, and receive some back.
I can identify if an object was sent and returned, or if it is a new object.
For returned objects, I would like to substitute the original object into the deserialization process in the OnDeserialized method of my framework's base class.
This allows all references to the object that got sent to remain intact, without having to get a new deserialized object and then copy all it's fields onto the old object.
----------------------
Functionally, I add a class above the current base class, with two fields:
Int64 ObjectSerialNumber; always unique.
bool ObjectIsNew; which is set to true on creation, and false when it finishs deserializing (see below).
When objects are serialized, they are stuck in a dictionary hooked to that comms session, hashed by ObjectSerialNumber.
In the base OnDeserialized , I have already deserialized ObjectSerialNumber , and ObjectIsNew , but none of the other fields.
If ObjectIsNew != true , I get the original object from the dictionary and insert it in place of the object that the stream is being deserialized into.
If ObjectIsNew == true , I set ObjectIsNew = false and continue using the one provided by the deserializer.
------------------------
The only fly in the ointment is that "insert it in place of the object" really means:
this = originalObject;
I have not found a way to do this in .NET. Anyone have an idea of how to go about that?
Is there a way into the fields that are hidden in 'this'?
The whole framework is already 'unsafe'.
Thanks
Richard
Silver member by constant and unflinching longevity.
|
|
|
|
|