My software project includes a set of .exe files, developed and compiled using visual C++ 6.0 SP6 and Visual Studio 2008 (C#). My builder (Finalbuilder) updates the version info of the projects automatically and then compiles them. I wonder why some of my .exe files are missing the version tab in the file properties dialog (right click on file -> properties). This tab is essential for deployment, because my colleagues should check the version before deploying them. I am using Windows XP SP3 for development and deployment.
The version info is a resource and no .exe attribute i think. So check if you really attached that resource.
Related
How to use dotfuscator to obfuscate Windows service?
We have created windows service application that includes multiple DLLs (custom as well as third party dlls) and we use installshield to create exe and we distribute the same.
We would like to know on how to start with obfuscate using dotfuscator.
As far as we reviewed, it looks like we will not be able to obfuscate the entire windows service exe and we will be able to individually obfuscate each dll. But not sure how to add these dlls while creating the service exe.
If someone can guide on how to obfuscate the windows service exe created using the install shield.
When we tried to all the exe file created using the installshield, we are getting the following error.
Invalid input assembly C:... . This is not a managed module. (C:...)
But when I tried a individual DLL it is able to obfuscate but the ouptut is in different folder. So we are not sure how to automated this entire process.
Environment: Visual Studio professional 2012, Dotfuscator version - 5.5.45x
We have not registered with Dotfuscator and we using the Dotfucator that is part of visual studio.
I work on the Dotfuscator team and am answering as part of my job.
It sounds like the EXE generated by InstallShield is not a .NET assembly, but a native executable. You can verify this by trying to open the EXE in a .NET disassembler/decompiler like ildasm and seeing if that also gives you an error.
I'm not too familiar with the way InstallShield operates when creating a Windows Service, but it sounds like you create the DLLs first, and then InstallShield takes those DLLs to create the installer package? In that case, you should run Dotfuscator after you create the DLLs, but before InstallShield consumes those DLLs. Then is it possible to configure InstallShield to use those obfuscated DLLs instead of the original ones?
With Visual Studio 2012 you have to run a Dotfuscator Project's build from the Dotfuscator Community Edition (CE) user interface (that you open from Visual Studio's Tools menu). Newer versions of Dotfuscator CE Visual Studio 2015 and Visual Studio 2017 can build from the command line interface once you've set up a Dotfuscator Project in the user interface. For automation, you could set up your build scripts to call this interface.
I have created setup project in VS2013 in the prerequisite section i have all the component related to 4.5 framework (lowest is 3.5 framework). One of my component needs C++ 2005 redistrbutable is there any way by which i can add it in prerequisite section
You can manually add the merge module from the windows sdk on the development machine.
Path would be C:\Program Files (x86)\Common Files\Merge Modules
Also you can deploy the couple of dlls of VC redist manually in your own installer (in local directory), please see link below.
https://msdn.microsoft.com/en-us/library/ms235291(VS.80).aspx
Side by side assemblies location.
C:\Windows\winsxs
I have a C# project that I have created in Visual Studio Express 2010. This program uses a 3rd party C# class that relies on/calls a C++ dll. I just copied the filename.dll into the bin/debug and bin/release folders of the project folder, and the application ran fine.
I am under the assumption that I can copy the release executable for the project to another computer and run it as long as the filename.dll is in the same directory as the executable. However, trying this on another computer with correct frameworks installed, etc. the program crashes with a system.dllnotfoundexception.
Strangely, my friend reports that the program runs on his computer with Visual Studio installed, but not the one without, though I have not actually seen this.
What could be causing this? And how can I get the release executable to run on another machine?
Thanks for any replies!
-Chase
Make sure you have the Visual C++ runtime installed (VS2005,VS2008,VS2010).
If your c++ dll is build by visual studio it may depends on the CRT, two things to check here :
If it depends on the release or debug CRT. Microsoft don't give you the right to distribute the debug version except for debugging purposes so it could be a problem.
Witch version it depends on
The last version from vs2010 could be copied in the same directory as the executable (msvcp100.dll for c++ msvcr100.dll for C)
Previous versions needed to be installed as side-by-side assemblies so running their setup was mandatory (Some versions like the VS2005 one are included in framework install but others like the VS2005 SP1 one need to be installed separately)
In any case the best way to debug such problems is to install Dependency Walker (free) on the computer having problems and let it tell you what dll is missing.
The easiest (albeit maybe not the "best") solution to this problem is adding a Setup project to your solution. A setup project will help you find any dependencies, and make them available during install.
The steps you need to take are the following:
Add a Setup project to your solution (found in Add project.../Setup templates)
Right-click the project, choose "Add/Project output..." and add the startup project of your program.
Right-click the project and choose "View/Custom actions".
Right-click the root node, select "Add Custom Action..." and from "Application Folder" add "Primary output from [your project name here]".
Now when you compile, an .msi installer is created. Run this installer on the other computer, and your program will be installed and runnable. To uninstall, run the installer again, or remove the program from "Add/Remove programs" under Control panel.
I have a DLL I need to deploy with my C# application. It's not currently included in the installation package when I hit "Publish" so how do I include it?
Would the process be any different if I had app.config and other files I wanted to deploy with my application?
If it's referenced it should be included automatically. I've deployed a couple of apps that require a 3rd party dll and they've published OK.
Is the dll referenced correctly in your project? That's the only thing I can think of at the moment that might be the problem, but if it wasn't your code wouldn't compile and/or link anyway.
To get the xls file to deploy all you need to do is add the file to the solution and then set the "Copy to Output Directory" property on the file.
I take it you are using Visual Studio?
If your using Visual Studio 2008 (I have no experience with Visual Studio 2005) under the Publish tab in your project properties click on the Application Files button. This will bring up a list of all dependencies assembalies required by your project. If you find that required dll is not being published by the Visual Studio publisher tool by default you can go into here and set the Publish Status of the offending dll to Include.
Sometimes in my more complicated projects, depending on the type of dependency, I have to go into this menu and force certain dll's to be included opposed to the default Prerequsite setting.
...but this is all under the assumption you have the assembly properly referenced in the required projects and everything is compiling fine.
Can't you add the dll as a resource to your installer project?
I've seen popping up around the web recently .application files, for .NET installations. (Application manifests, per the extension details).
How exactly does one create these .application files in Visual Studio, and how do they differ from a standard windows setup? Please enlighten me.
I'm a C# developer, but never used a .application installer before.
How exactly does one create these .application files in Visual Studio?
.application file is automatically created when you do a click-once deployment.
For click-once deployment, you can
Right click on the project you want to release and choose publish menu item.
-- or --
Right click on the project, select properties, go to publish tab to publish.
how do they differ from a standard windows setup?
You would create a standard windows setup program by creating a setup project in your solution. And also they differ in a way that, for click-once, end-user does not have to install the program on their local machine.
You can learn more about differences between them from MSDN
Choosing Between ClickOnce and Windows Installer