I started using a 3rd party API that depends on XML-RPC.NET using CookComputing.XmlRpc; I can download the source files but there is not an actual "XmlRpcV2.dll" file anywhere in the zip.
It looks like you are supposed to build it, but when I open the src project in MS Visual C# EXPRESS and do the conversion wizard, then try to build it I am getting 842 build errors about not being able to find types or namespaces for the following: NUnit, TestFixture, TextFixtureAttribute, Test, etc ...
Does anyone know where I can download the "XmlRpcV2.dll" file so that I can simply drop it into my C# project and start using it? I can't seem to find a direct download of the compiled dll anywhere online. Is it perhaps used in other downloadable projects somewhere?
I downloaded version 2.5.0
Any help appreciated.
This is a problem if you're using Windows Explorer to unzip the distribution file (Explorer hides the dlls). The zip file structure will be changed in version 3.0 onwards to avoid prevent this from happening.
Perhaps the best way these days to add XML-RPC.NET to a project is to use NuGet.
Open the bin directory in the download - you should see CookComputing.XmlRpcV2.dll. This is what you want.
I assume you obtained the download from here: http://www.xml-rpc.net/download.html
Related
Context
I work as a game developer at a studio that develops an MMO. We built an authoritative server but still run into issues with exploits and automation. I downloaded the main bot used to hack our game in an effort to determine how it exploits our server so we can patch accordingly.
Question
I decompiled the .exe using dotPeek to get the source files but ran into an issue: I only got the source files for the launcher. The launcher injects the core assembly into our application at runtime. It does so by storing the assembly as hex data in a .resource file. Any idea of how I can get the source code from this .resource file?
Solution
Thanks for everyone's help. I got the source files by extracting the binary data from the .resource file and writing it to a .dll file and then decompiling it using dotPeek. See my solution for more details.
Shouldn't you be able to use GetManifestResourceStream to get the embedded data?
Thanks everyone for the help - a combination of using a decompiler and reading the binary assembly data at runtime and writing it to a .dll file helped me get the source code:
I used dotPeek to decompile the launcher. In assembly explorer, I then right clicked the assembly and selected Export to Project... I then opened the project in Visual Studio and inserted a line that used File.WriteAllBytes to write the the byte[] (already available via their application, but this just got the binary data from the .resource file using ResourceManager.GetObject) to a .dll file. I then opened that .dll file in dotPeek and wala - source code visible.
I recommend designing around the problem, a kind of soft-captcha enforced by the server. The truth of your problem is: .Net is open to extension. Rather than engage in a 'cat and mouse arms race' around the client exe, think about how you detect non-human activity, or how to randomly demand human-only activity.
If your game is worth the attention, they will overcome you. They are many :)
I want to open the .exe file in button click. Using ZipFile.ExtractDirectory not working for .exe file and it throws exception.
Can anyone help me how to overcome this?
Please, consider using the LZMA SDK from 7-Zip link it contains the binaries, libraries and code examples on how to use properly the sdk with C# and other langs, it's like if you are using your owm 7-zip archiver. But only using all of you need.
Or, things more easier... link
Contains built-in compression/descompression modules only for implement in your solution.
Last thing, use the CLI of 7-Zip.
PD: Remember the UnauthorizedAccessException is due the Windows permission to your app, make sure you are reading/writting in a reachable directory, even you can add Admin Privilegies to your app. Hope this help you. Have a Nice Day! :)
I've trying to develop while also creating a COM .DLL for my shell icon overlay and context stuff, so i do some search on the tool to make this happens, then i found SharpShell, the shell extension helper tool.
I've been using sharpshell to create an example .DLL, once its generated, i used their "Server Manager" to automatically helps register my .DLL to the registry and the server is loaded properly.
On the Registry, I've seen them registered properly, but i don't see any change in my UI. So i tried to download "Shell Ext Viewer - Shexview - 64 Bit. "
After i opened my shell lists, i saw my Dll was registered there, but they are reading my .DLL files in C:\Windows\Assembly\GAC_MSIL\ folder.
So i tried browsing them in in my Explorer, but i find out that i dont have GAC Assembly.
I further checked articles for help, i found out that they're .nEt extensions, and i also checked my .NET, all of the .NETs from 4.0 are installed properly, but i dont have GAC_MSIL in my assembly. What should i do in order to tell my Shell to open my dll file into a correct file? is there any a way from visual studio where can i register my Dll and server to a specified folder, instead of GAC_MSIL folder, because i am missing it?
Thank you, and i would really appreciate your help !
There are some limitations for OverlayIcons. You have only 15 slots for OverlayIcons. If you have Dropbox or Google Drive installed (or Subversion) > you have already lost, because no slots are available anymore.
But there some way to make bigger Priority for your ShellExtensions. Read here more https://github.com/dwmkerr/sharpshell/issues/93
I googled "Open Office C#" and found a commonly reoccurring tutorial: http://www.opendocument4all.com/download/OpenOffice.net.pdf
The trouble is this portion (snippet from pdf):
Change from the Visual Studio window to a Explorer window. Move to the
CLI assemblies folder. You will find them in your OpenOffice program
installation path in the folder named “assembly”. In this folder you
should see the following .net assemblies.
I do not have this "assembly" folder. I navigated to:
C:\Program Files (x86)\OpenOffice.org 3
It simply is not there. I have to create reports using C#.
As per comments above from the OP the goal is to create DOC or DOCX:
For creating DOCX there is a FREE option (OpenXML from MS) available...
For creating the older DOC format (among lots of other things there is for example Aspose.Words (commercial - just a happy customer, not affilliated).
EDIT - as per comment:
All above options work independently of Word (i.e. don't need Office present/installed on the machine).
I'm not sure Yahia understood what you were asking...
As, I had the same issue (I think), I thought I would share the solution I found:
In version(s) 3.x+ the cli_* dlls are placed in the GAC and (afak) inaccessible from a VisualStudio project. You have to extract them from the openofficeorg1.cab file (using RAR, WinZip, 7z, whatever).
Here is a link that goes into more detail covering the topic:
http://blog.nkadesign.com/2008/net-working-with-openoffice-3/
BTW, when I did this (successfully), I found 6 such cli_* dlls.
It's worth mentioning that when I came across this tidbit, I had already deleted the initial installation folder that was created during the setup, so I had to uninstal OpenOffice and then reinstall to get that folder back. After that it was easy.
Hope this was of some help.
I've created a Windows Forms Application in Visual Studio 2008, .NET 3.5.
Now I want to finalize my project, i.e. to create a single .exe file which I can give to someone and he will be able to run it on his computer.
In my project files I found bin/Debug directory where I see a .exe file.
Can I just use this file as is, or I am missing some important finalizing procedure ?
Thanks !
You can just take the EXE as long as it has no dependencies. If there are any dll files in there, you need to include them (or use the ILMerge command line utility to combine them). You can, however, ignore any generated pdb or xml files.
As a side note, you should be compiling in release if you plan on deploying your project (the output will be in bin/Release)
You are not clear in you question. If your solutions output is just a single exe file, then Yes, you can give away the exe file in bin\debug.
But instead of bin\debug\ exe you must distribute the bin\Release\ exe which is meant for release purpose.
To make the ILMerge easier, use the GUI tool from codeplex at http://ilmergegui.codeplex.com/
If this is a commercial application, several commercial obfuscators allow creating a single exe.
In SetiSeeker response the link http://ilmergegui.codeplex.com/ is not reachable