kmalmur
kmalmur

Reputation: 2839

Visual Studio - how to create two projects using the same sources

My solution consists of 2 executable projects and a couple dlls. Project1 is a Smart Device Project, Project2 is a Windows Forms Project.
Both projects use the same libraries, the reason of that is I want to test my libraries on PC before I deploy it on the device.

The problem is that the DLL project type can be Smart Device Class Library or Class Library, not both. I cannot add a reference from SD project to WF and vice versa. I was able to add reference from SD project to a dll file (generated from Class Library project) instead of the project itself, but for some reason I got the message "cannot load XXX type from YYY assembly". It doesn't depend on my code, because when I created separate project for the same sources, everything was fine.

The only solution I've found is to create 2 types of projects for each library, but I don't know how to make 2 projects based on the same sources.

Upvotes: 4

Views: 3526

Answers (3)

Quibblesome
Quibblesome

Reputation: 25409

I'm not sure if you understood MusiGenesis's answer correctly.

The premise is to create your libraries as smartcard device class libraries and then reference those smart device class libraries in both projects "full framework" and "WinCE".

Now SmartDevice applications cannot reference Full Framework libraries but Full Framework applications CAN reference smart device libraries.

So your final project assortment might look like this:

  • Library.dll - A smart device library
  • FullFramework.exe a Windows Forms application for Full Framework that references Library.dll
  • WinCE.exe a Compact Framework application that references Library.dll

The above configuration will build fine. Just be aware of certain differences between compact framework and full framework.

Upvotes: 3

MusiGenesis
MusiGenesis

Reputation: 75276

Normally, you can reference a Smart Device Class Library project from either a Smart Device EXE project or a full-framework WinForms EXE project.

However, it is possible to reference .NetCF-only components within the Smart Device class library that will make the DLL not work when referenced from a full-framework EXE project.

What assemblies are actually mentioned in your error message (I'm assuming it doesn't literally say "XXX" and "YYY")?

Upvotes: 1

SLaks
SLaks

Reputation: 887453

You can add all of the files normally to one project.

You can then right-click the other project, click Add, Existing File, select the files, click the down arrow next to the Add button, and click Add as Link.

Upvotes: 9

Related Questions