ServiceBus AppFabricLabs DLL - appfabric

There are two DLL's with multiple namespaces that I am having problems with:
Microsoft.ServiceBus.Channels - V2.0.50727
Microsoft.ServiceBus - V2.0.50727
I'm attempting to enhance Juval's Lowry's Service Bus Explorer to switch between:
appfabric.azure.com - production
portal.appfabriclabs.com - beta
If I only use Channels - I lose the TransportClientEndpointBehavior class, if I add both references I can't build because the ServiceBusEnvironment class exists in both DLL's in the same namespace.
I have a feeling that I'm missing something obvious here....
With both files referenced:
Error 1 The type 'Microsoft.ServiceBus.ServiceBusEnvironment' exists in both 'c:\Program Files\Windows Azure AppFabric SDK\V2.0\Assemblies\Microsoft.ServiceBus.Channels.dll' and 'c:\Program Files\Windows Azure AppFabric SDK\V1.0\Assemblies\NET4.0\Microsoft.ServiceBus.dll' C:\Users\rreukema\Downloads\Idesign_WCFDisk\AprilIDesignCD\Demos\ServiceModelEx\ServiceBus\Discovery\ServiceBusDiscoveryClient.cs 26 134 ServiceModelEx
With only the Channel Reference:
Error 12 The type or namespace name 'TransportClientEndpointBehavior' could not be found (are you missing a using directive or an assembly reference?) C:\Users\rreukema\Downloads\Idesign_WCFDisk\AprilIDesignCD\Demos\ServiceBus\Explorer\PopulateSolution\ServiceBusHelper - Buffer.cs 21 78 PopulateNamespace

Creating an application that supports both the lab and the production versions of Service Bus is going to be really hard, as there's no official backwards compatibility story between the two of them. (Labs is meant to be used to try out new features and get feedback from customers). What's the scenario you're trying to enable here?
As for the dll issues, are you referencing both versions of the assemblies on your project? If so, you'll hit versioning issues, specially if you have the ServiceBus dlls in the GAC. If you only want to target one version of the dlls at a time, I strongly suggest you use the full assembly name (version and everything) when adding a reference in your project. Another good idea is to add a reference not to the dll in the GAC, but the one of the install location, as it's explained here

Related

Managed debugging does not work anymore, due to wrong version of mscordbi.dll

I'm trying to debug a memory dump, using Visual Studio, as managed, but this fails with following error message:
Managed debugging is not available for this minidump.
A required library for managed minidump debugging,'mscordbi.dll', version '4.0.30319.0', could not be located.
Restart your debug session after trying one of more of the following steps:
If this computer is not currently connected to the internet, connect so the dll can be downloaded from Microsoft.
Specify the path to 'mscordbi.dll' in Symbol Settings under Debugger options.
Select 'Debug with Native Only'.
While checking my Symbol Settings, there are following Symbol file (.pdb) locations (all are checked):
Environment Variable: _NT_SYMBOL_PATH
Microsoft Symbol Servers
C:\Dump_Repository\... (not relevant for this question)
A cache directory is foreseen, and the automatic loading preference is set to Load all modules, unless excluded. The only excluded one is user32.dll.
The value of the _NT_SYMBOL_PATH environment variable is the following:
cache*;srv*C:\Dump_Analyse*C:\build_machine1;cache*;srv*C:\Dump_Analyse*\\build_machine2\Development\Symbols;cache*;srv*C:\Dump_Analyse*\\build_machine1\Symbols;cache*;srv*https://msdl.microsoft.com/download/symbols;cache*;srv*C:\ProgramData\dbg\sym
In the mentioned directory C:\Dump_Analyse, there is a directory mscordbi.dll, with three subdirectories, each containing the mentioned mscordbi.dll DLL:
Prompt>find ./ -name "mscordbi.dll" 2>/dev/null
./Dump_Analyse/mscordbi.dll (this is a directory)
./Dump_Analyse/mscordbi.dll/4BA1DA2Deb000/mscordbi.dll
./Dump_Analyse/mscordbi.dll/563C0E8E10b000/mscordbi.dll
./Dump_Analyse/mscordbi.dll/583E5AAD10b000/mscordbi.dll
The two last ones seem not that relevant, but the first one has file version 4.0.30319.1 (which is very near to the requested version).
My computer is connected to the internet, my account seems to be ok (I have recently modified the password of my Windows account, but I'm logged in on Visual Studio under another account).
Does anybody know what might be happening here and how I can solve this issue?
The problem is solved:
While trying further, I wanted to clear the symbol cache, which did not work (a user permission was said not to be correct).
That cache symbols was a directory, containing a tilde character: ~ (something like C:\Users\Dominique~1\AppData\Local\Temp\SymbolCache).
I've replaced this by the real directory name (by clicking the Browse button):
C:\Users\DominiqueDS\AppData\Local\Temp\SymbolCache
In other words (for searching purposes): in Visual Studio Symbol settings, the symbols cache directory should not contain a ~ (tilde) character.

Automatically generated WAF solution fails to load

Cryengine as an SDK has recently switched from providing pre-made solutions to forcing developers to use a WAF based build system to automatically generate a visual studio solution. Right now, there's very little communication coming from Crytek about problems everyone is having with the new build system so I was hoping someone here might be able to help.
I'm getting Cry-WAF (Crytek's WAF based build system) to generate a solution, but when I open it it provides an error (quoted below) and in the solution explorer appends (load failed) to each project in the solution. I first had an issue generating the solutions with Cry-WAF's msvs.py script saying it couldn't gather properties for platforms/configurations, but that eventually stopped and allowed the solution to be generated with the quoted problem.
A generic google search on the root cause suggested I try enabling IIS, but that has done nothing to fix the problems. Editing the .vcxproj files shows that they're correctly listing the paths to all files associated with that project. The only thing missing in the solution seems to just be the information that would tell what compiler to use, target names, target paths, etc. With what little I know about WAF as a build system, I'd assume that the python code Crytek is using to gather that information is just utterly failing.
Does anyone have a suggestion on what could possibly be done?
c:\Program Files (x86)\Steam\SteamApps\common\CRYENGINE\CRYENGINE_pc_eaascode\Solutions.depproj\CryAction.vcxproj : error : The composition produced a single composition error. The root cause is provided below. Review the CompositionException.Errors property for more detailed information.
1) Specified argument was out of the range of valid values.
Parameter name: index
Resulting in: An exception occurred while trying to get the value of property 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef.VCConfigurationShim'.
Resulting in: Cannot get export 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef.VCConfigurationShim (ContractName="Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationShim")' from part 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef'.
Element: Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef.VCConfigurationShim (ContractName="Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationShim") --> Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef
Resulting in: Cannot set import 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator.VCConfiguration (ContractName="Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationShim")' on part 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator'.
Element: Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator.VCConfiguration (ContractName="Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationShim") --> Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator
Resulting in: Cannot get export 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator (ContractName="Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator")' from part 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator'.
Element: Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator (ContractName="Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator") --> Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator
Resulting in: Cannot set import 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef.EventsTranslator (ContractName="Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator")' on part 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef'.
Element: Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef.EventsTranslator (ContractName="Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCLegacyEventsTranslator") --> Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef
Resulting in: Cannot get export 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef.VCConfigurationShim (ContractName="Microsoft.VisualStudio.ProjectSystem.ConfiguredProject.HostObject")' from part 'Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef'.
Element: Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef.VCConfigurationShim (ContractName="Microsoft.VisualStudio.ProjectSystem.ConfiguredProject.HostObject") --> Microsoft.VisualStudio.Project.VisualC.VCProjectEngine.VCConfigurationMef
At the moment only Visual Studio 2012 is supported, so issues with Visual Studio 2013 are to be expected.
There is a thread on their forums dedicated to helping with WAF problems, which includes getting it up and running with Visual Studio 2013: http://www.cryengine.com/community/viewtopic.php?f=314&t=130850
The WAF documentation is here: http://docs.cryengine.com/display/SDKDOC4/Getting+Started+with+WAF
You will find help much more quickly on the CRYENGINE forums - few users habitually check Stack Overflow for these types of questions.

ClCompile and Emscripten

I had a error with a basic hello world from a set of examples from Emscripten/tests/msvc10
I have a error MSB4096 but i don't find the solution of the problem on visual Studio 2012.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.CppBuild.targets(817,5): error MSB4096: The item "..\hello_world.c" in item list "ClCompile" does not define a value for metadata "ProgramDataBaseFileName". In order to use this metadata, either qualify it by specifying %(ClCompile.ProgramDataBaseFileName), or ensure that all items in this list define a value for this metadata.
Do you know the reason?
thanks
When trying to compile keep in mind 2 things:
Do no try to compile managed C++ code with emscripten.
the code is running in browser sandbox
The metadata stuff in your code seems really related to the first issue (managed code).
You have to set the 'Program Database File Name' (ProgramDataBaseFileName) Property in the VS C/C++ Options of your Project e.g. to '$(IntDir)$(TargetName).pdb'
ProgramDataBaseFileName exposes the functionality of the compiler's /Fd (Program Database File Name) option.
MSDN ProgramDataBaseFileName

How does someone use thirdparty libraries to be included in Firefox addons/extensions?

I am currently learning how to create Firefox addons using XPCOM and I want to know how to include thirdparty libraries to develop them. I followed a few tutorials to compile .xpt and .dll from c++ files (noted in: https://developer.mozilla.org/en/How_to_build_a_binary_XPCOM_component_using_Visual_Studio and http://nerdlife.net/building-a-c-xpcom-component-in-windows/) and I am not sure how we are suppose to include the files into an addon project (which gets packaged into .xpi file).
I am using Opencv (c++) to do image conversions via the addon such as resizing a very large image (3mb high res png) down to something small and simple (such as 600X800 200kb jpg) that will be done by my addon. I know that Opencv is written in c++ and xpcom can compile c++ code into a dll and xpt. I read a couple of tutorials but most of them points to adding these files (xpt and dll) in "C:/Program Files(x86)/Mozilla Firefox/components" instead of the addons "components/" folder (which is not how addons work, I believe). Though the Mozilla page (listed above) does include something about "{app}/components" and "{app}/application.ini" folders but I have never read anything like this, so therefore I am confused how this is done.
My other option is making the Opencv methods into an executable and then running it separately (similar to how MemoryFox addon runs an executable to clear Firefox's memory) and use that to conduct image resizing.
I am really not sure how to do this (I am new the addon development) and I would like to know how to accomplish this (using 3rd party C++ libs into the addons). An example, tutorial or explanation is fine to get me started.
Thanks in advance.
Edit: I would also like to inform that I have read threw most of https://developer.mozilla.org/en/Creating_XPCOM_Components (picked and choose topics) and it does not tell me how to achieve the above.
There are several places you can store an addon and inform FireFox of it's existence.
Mostly it comes down to how you want to distribute it.
With MS Windows the loadLibrary process will search the current directory then the path.
Simply locating your xpcom.dll alongside 3rdparty.dll in the components folder of your pluggin should work ok.
XPCOM is like windows COM but for across platforms.
Your designing to meet the requirements of interfaces.
Your addon may not need to define it's own interface (.idl -compiles-> .xpt, .h) but if it does from firefox 4 you will need to list this in the chrome.manifest.
Once compiled you will need to list your dll in the chrome.manifest also.
taking your example prototype function
long Add(in long a, in long b);
baz_1.idl might look like
#include "nsISupports.idl"
[scriptable, uuid(F0F0F0F0-AAAA-BBBB-CCCC-111111111111)]
interface iBaz : nsISupports
{
long Add(in long a, in long b);
};
generate your header and xpi distrib
$(GECKOBIN_PATH)/xpidl -m header -I $(GECKOSDK_PATH)/idl -e baz_1.idl
$(GECKOBIN_PATH)/xpidl -m typelib -I $(GECKOSDK_PATH)/idl -e baz_1.idl
Link the contract guid to the contract name in C++ for FF4
NS_DEFINE_NAMED_CID(BAZ_CID); // defined in baz.h generated from baz_1.idl
static const mozilla::Module::ContractIDEntry kSLMozContracts[] = {
{ "#foo.bar.com/baz;1", &kBAZ_CID },
{ NULL }
};
usage in C++
nsCOMPtr<iBaz> baz = do_CreateInstance("#foo.bar.com/baz;1",&rv);
usage in JavaScript
var baz = components.classes["#foo.bar.com/baz"] .createInstance(Components.interfaces.iBaz);
Example.
We have a product that also provides a firefox addon, so we don't ship an xpi, but the addon sits in a subfolder of the product.
Product in
c:\program files\foo\
addon in - lets call this foobar
c:\program files\foo\bar
register the addon
HKLM\SOFTWARE\Mozilla\Firefox\Extensions\
"{GUID}"="c:\program files\foo\bar"
so then the layout of the addon is
foobar\chrome.manifest
foobar\install.rdf
foobar\components\baz_1.xpt
foobar\components\baz_1_32.dll
foobar\components\baz_1_64.dll
foobar\components\someOtherWorker.dll
foobar\chrome\ui.jar
In FF < 4 you didn't need to list binaries in the manifest, things in components folder are loaded and checked for functions to see if they are xpcom, so a chrome manifest might have looked like
content baz jar:chrome/ui.jar!/content/baz/
skin baz classic/1.0 jar:chrome/ui.jar!/skin/classic/baz/
From FF 4 the chrome manifest needs to list your binary files, so it then looks like
(we only support 64 bit after FF 3.5)
content baz jar:chrome/ui.jar!/content/baz/
skin baz classic/1.0 jar:chrome/ui.jar!/skin/classic/baz/
interfaces components/baz_1.xpt
binary-component components/baz_1_32.dll ABI=WINNT_x86-msvc
binary-component components/baz_1_64.dll ABI=WINNT_x86_64-msvc appversion>=3.5
FireFox 5 (Out now) has changed
the formats of xpt files - so your interfaces won't be found by FF5 unless you build with that SDK.
the version of the xpcom registration - so FF5 won't use a dll built for FF4 as the xpcom version isn't high enough.
The tutorial you refer to is about developing applications, not extensions. So application.ini doesn't apply in your case. Extensions have a manifest file called chrome.manifest, starting with Firefox 4 all XPCOM components and XPT files need to be registered there - or they will be ignored. It no longer matters where the component is located though components/ would still be the common place for them. https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0#Component_registration should be a good starting point - that should explain what you need to write there.
Note that the source code in the tutorials you were reading is outdated as well. Current code examples are linked to from https://developer.mozilla.org/en/XPCOM/XPCOM_changes_in_Gecko_2.0#Binary_components. And you should use XULRunner SDK 2.0 (corresponds to Firefox 4) or higher. Sorry, you arrived at a bad time - that's the biggest change to XPCOM in the past 10 years.

Issues with build in Carbide C++ 2.0

I'm building my application and when I try to run it on the emulator, I get this error.
Creation Time Description Resource Path Location Type
1254339868582 BLDMAKE ERROR: Directory "\S60\devices\Nokia_N97_SDK_v1.0\epoc32\" does not exist ZeFirst Unknown C/C++ Problem
The folder does exist and does have the necessary rights.
The console has the following set of warning messages
warning: "C:\S60\devices\Nokia_N97_SDK_v1.0\epoc32\tools\GCCEV6.bsf" Invalid BSF specification - customization restricted to ARMV5, ABIv2 and valid BSF platforms
warning: "C:\S60\devices\Nokia_N97_SDK_v1.0\epoc32\tools\GCCEV6T2.bsf" Invalid BSF specification - customization restricted to ARMV5, ABIv2 and valid BSF platforms
warning: "C:\S60\devices\Nokia_N97_SDK_v1.0\epoc32\tools\GCCEV7A.bsf" Invalid BSF specification - customization restricted to ARMV5, ABIv2 and valid BSF platforms
What other development tools do you have installed on your computer?
Is there a chance your path environment variable is in the wrong order and you're not using the correct version of the compiler, for example?
Feel free to post your path, it can only provide more information.
I'm not sure if this will work, but try this:
Subst a drive to C:\S60\devices\Nokia_N97_SDK_v1.0\
Start, Run...
subst x: C:\S60\devices\Nokia_N97_SDK_v1.0\
Then in carbide, set your SDK to point to this subst location.
Window, Preferences, Carbide C++, SDK ..
Change the paths to use "x:\" rather than C:\...
Delete any imported projects in Carbide
Select project, right-click, delete.
(Do NOT click the tick box that is displayed).
Re-import your project
File, Import, x:\.....\bld.inf
I have faced a similar problem once.
If you have been able to build and launch the eumlator on earlier occasions, then the only solution that worked for me was to re-install the SDK.
Techeretic,
make sure that your workspace is located in the same driver partition (C:) of your Symbian SDK installation. If don't try changing it.
Sometimes I solved that problem by changing .pkg file's content to use a relative path. For example:
;Files to install
;You should change the source paths to match that of your environment
;<source> <destination>
"$(EPOCROOT)Epoc32\release\$(PLATFORM)\$(TARGET)\MyApp.exe" -"!:\sys\bin\MyApp.exe"
"$(EPOCROOT)Epoc32\data\z\resource\apps\MyApp.r01" -"!:\resource\apps\MyApp.r01"
"$(EPOCROOT)Epoc32\data\z\private\10003a3f\apps\MyApp_reg.r01" -"!:\private\10003a3f\import\apps\MyApp_reg.r01"
"$(EPOCROOT)epoc32\data\z\resource\apps\MyApp_aif.mif" -"!:\resource\apps\MyApp_aif.mif"
"$(EPOCROOT)epoc32\data\z\resource\apps\MyApp.mbm" -"!:\resource\apps\MyApp.mbm"
Hope it helps.