PDA

View Full Version : can't publish x86 IC 3.2 app with VS2010 (on 64-bit PC) - dll not found



Smejki
December 4, 2011, 22:02:08
Hi,

I just wrote a simple functionality testing app and I am unable to publish it and thus run on other than dev PC.
I followed these steps - http://www.imagingcontrol.com/en_US/support/documentation/dotnet/tech_Distribute_publish.htm - but after pressing "publish now", I am getting FileNotFound error.

"
Error 1 Cannot publish because a project failed to build. 1 1 ICtestApp
Error 2 An error occurred generating a bootstrapper: Unable to begin updating resource for bin\Release\app.publish\setup.exe with error 80070002 ICtestApp
"

Strange is that I can build and run the app on the PC. It fails to build only when publishing.

When I ran built app on another PC, the app crashed. When I started debugging in VS2010 JIT debugger, it said, the TIS_DShowLib09.dll and TIS_UDSHL09_vc10.dll are missing. Since the above mentioned manual says I should reference TIS_UDSHL09_vc9.dll in Win32 directory I changed the reference to TIS_UDSHL09_vc10.dll in neighbour x86 directory. But I still can't publish the app - same error

The app is meant to be (and set to) x86
I am using VS 2010 Pro
Working on Win 7 x64

Please give a clear pattern how to publish the app.
Thank You

Michael Kirmse
December 5, 2011, 09:58:33
Dear Smejki,

the error message "Error 1 Cannot publish because a project failed to build. 1 1 ICtestApp" says that your project is unable to compile, thus there seems to be an error in your code. Please create a sample ic program with the project wizard and try to publish it. Besides, the guide from the web is outdated and was meant to be used for VS 2008, please have a look at the documentation that was installed with IC Imaging Control for a newer version.

Smejki
December 5, 2011, 16:37:29
Dear Mr. Kirmse,

I am sorry if I am wrong but as I can see the documentation for IC v3.2 .NET also describes publishing only in VS2008. I made some testing.

When there are no dlls added (only tis.imaging.icimagingcontrol32.dll referenced), I can build the solution
When there are "added as link" DLLs, build fails at this point:


namespace ICTestApp
{
partial class Form1
{
private System.ComponentModel.IContainer components = null;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.icImagingControl1 = new TIS.Imaging.ICImagingControl();


Detailed exception description:

System.DllNotFoundException was unhandled
Message=Runtime File not found : TIS_UDSHL09_vc10.dll
Source=TIS.Imaging.ICImagingControl32
TypeName=""
StackTrace:
at TIS.Imaging.ControlSetup.InitLoadBaseDirectory()
at TIS.Imaging.ICImagingControl..ctor()
at ICTestApp.Form1.InitializeComponent() in C:\ICTestApp\ICTestApp\Form1.Designer.cs:line 33
at ICTestApp.Form1..ctor() in C:\ICTestApp\ICTestApp\Form1.cs:line 16
at ICTestApp.Program.Main() in C:\ICTestApp\ICTestApp\Program.cs:line 18
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
at System.Runtime.Hosting.ManifestRunner.ExecuteAsAss embly()
at System.Runtime.Hosting.ApplicationActivator.Create Instance(ActivationContext activationContext, String[] activationCustomData)
at System.Runtime.Hosting.ApplicationActivator.Create Instance(ActivationContext activationContext)
at System.Activator.CreateInstance(ActivationContext activationContext)
at Microsoft.VisualStudio.HostingProcess.HostProc.Run UsersAssemblyDebugInZone()
at System.Threading.ThreadHelper.ThreadStart_Context( Object state)
at System.Threading.ExecutionContext.Run(ExecutionCon text executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionCon text executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:


No matter whether I add DLLs from \bin\v2.0.50727\x86 , \bin\Win32 or \bin\v4.0.30319\x86, I am still getting errors that one or another DLL can't be found (though it is linked)

Jan Smejkal

Michael Kirmse
December 5, 2011, 16:57:07
Dear Mr. Smejkal,

The documentation on our website only describes the publishing of a IC 3.1 application. There were some changes from 3.1 to 3.2, for example, you do not need the .vda files anymore.
Using "Add As Link" may have worked for me because my development machine has strongly alternated configurations. Please try to use the normal "Add" instead.
For VS2010, you need the file TIS_UDSHL09_vc10.dll instead of TIS_UDSHL09_vc9.dll and the TIS_DShowLib09.dll.
For a .NET application, you also need to select the correct .NET Framework in the "Prequisites".
On the "Applications Files" dialog, you need to set the "Publish Status" of the TIS.Imaging.ICImagingControl32.dll to include.

Smejki
December 5, 2011, 17:28:46
I was doing this as well during today. No change.

BUT.

I've just noticed that when placing ICImagingControl .NET component from Toolbox onto the Form, a reference to C:\Program Files (x86)\Common Files\IC Imaging Control 3.2\bin\v2.0.50727\x86\TIS.Imaging.ICImagingContro l32.dll is automatically created.

Shouldn't it be v4.0.30319\x86\TIS.Imaging.ICImagingControl32.dll instead?
Could that be the cause?

Smejki
December 5, 2011, 17:39:14
EDIT - no, it is still the same. it still fails at the same point unable to find TIS_UDSHL09_vc10.dll (added normally or as a link).
btw "Edit post" doesn't work

Stefan Geissler
December 5, 2011, 17:57:38
The matching runtime files must be also there. It is "msvcp100.dll" and "msvcr100.dll". They are referenced by the TIS_UDSHL09_vc10.dll. The "TIS_UDSHL09_vc10.dll " DLL is used, if you use the .NET 4 frame work. It is located in "c:\Program Files (x86)\Common Files\IC Imaging Control 3.2\bin\v4.0.30319\x86\"
I suppose, the setup tool you use is not able to find the correct reference to IC Imaging Control in respect to the used frame work version.

Smejki
January 12, 2012, 11:46:42
Suddenly it turned out, that after relaunch of VS the project compiles and publishes. So that's ok so far.


But I encounetered a new problem. I can't load a third-party camera (from IDS) any way I tried it.
I found that Sample demo application distributed with the IC is able to load the camera without any problem but compiled demoapp solution doesn't. Is it supposed to work the same or are there some additional functions used in Sample demo application?

An application written in C# based on IC v2, .Net 2.0 and VS2005 came to me and after all conversions to new versions I encoutered the problem so I did the testing. I need to fix it as fast as possible so please could you direct me a bit on which classes I should have look to make my app see the camera? I found nothing that could help on the first look to the manual.

Thank you

Stefan Geissler
January 12, 2012, 12:24:51
Please see this FAQ: http://www.theimagingsourceforums.com/faq.php?faq=ic_programming#faq_icnowebcam

However, I suggest you create a support case at http://www.imagingcontrol.com/en_US/support/case/ so we can discuss this license issue.