The main problem is that the .prj file which deploytool creates contains absolute paths which will not work on other computers!. This is really bad to see that this is still the case in MatLab R2011a.... Really! So I decided to use Visual Studio 2005 vcproj file to maintain my deployment project because Visual Studio 2005 project support relative path pretty damn well! Thank you Microsoft Visual Studio Team!. I decided to create a WIN32 utility using MFC to convert the relative path to absolute path using the vcproj file and generate a Matlab PRJ file. In my case I am targetting C# .Net Assembly. Here is the source code!
#define _CRT_SECURE_NO_DEPRECATE
#include "stdafx.h"
#include "vcproj2matlabprj.h"
#include
#include
#include
#include
#include
#include "xmlParser.h"
#include "win32utility.h"
CString RelativePathToAbsolutePath(LPCTSTR contentRelativePath,LPCTSTR rootPath, BOOL &bRelativePathToParentFolders);
void PrintFileName(XMLNode xNode,LPCTSTR pszRootFolder);
FILE *_pOutMakeFile = NULL;
#if !defined (WIN32)
#define _strdup strdup
#endif
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// The one and only application object
CWinApp theApp;
using namespace std;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
CString strRootFolder;
CString strVCProjShortFilename;
CString csPath;
CString csFilenameNoExt;
CString csExtension;
CString strVCProj;
CString strMathlabProj;
CString strMathLabRootPath;
CString strClassName;
CString strNamespace;
if ( argc < 4 )
{
printf("Usage: %s
return 1;
}
XMLNode xMainNode=XMLNode::openFileHelper(argv[1],"VisualStudioProject");
strRootFolder = CString(argv[1]);
strMathlabProj = CString(argv[2]);
GetPathFromFileName(strRootFolder);
strVCProj = CString(argv[1]);
strVCProjShortFilename = CString(argv[1]);
strMathLabRootPath = CString(argv[3]);
GetFileNameComponents(strMathlabProj, // in
csPath, csFilenameNoExt, csExtension); // out
if ( xMainNode.isEmpty() )
{
printf("Not valid input file [%s]\n", argv[1]);
return 2;
}
XMLNode xNode;
xNode = xMainNode.getChildNode("Configurations");
// Try to open output file
_pOutMakeFile = fopen(argv[2],"w");
if ( _pOutMakeFile == NULL )
{
printf("Can not open output file [%s]\n", argv[2]);
return 3;
}
// Generate Header
fprintf(_pOutMakeFile,"\n");
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
strNamespace = csFilenameNoExt;
strNamespace.MakeUpper();
fprintf(_pOutMakeFile,"
strClassName = csFilenameNoExt;
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
// Print list of files
xNode = xMainNode.getChildNode("Files");
PrintFileName(xNode,strRootFolder);
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
//fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
fprintf(_pOutMakeFile,"
}
return nRetCode;
}
void PrintFileName(XMLNode xParentNode, LPCTSTR pszRootFolder)
{
CString strRootFolder = pszRootFolder;
int n=xParentNode.nChildNode();
for( int i = 0; i < n; i ++ )
{
XMLNode xNode = xParentNode.getChildNode(i);
if ( !strcmp(xNode.getName(), "File" ) )
{
const char *pcFileName = xNode.getAttribute("RelativePath");
char *pcNewStr = _strdup(pcFileName );
// Find the file extension
char *ext = strrchr(pcNewStr, '.');
if ( NULL != ext && !strcmp(ext, ".m"))
{
CString strFullFilename;
BOOL bRelativePathToParentFolders;
CString strRelativePath = pcNewStr;
if (IsCurrentDirPath(&strRelativePath))
{
CString strSubPath;
// remove .\ and append path
int pos = strRelativePath.Find("\\");
int len = strRelativePath.GetLength();
if ( pos > 0 ) {
strSubPath = strRelativePath.Right(len-pos-1);
}
// append
strFullFilename = strRootFolder + strSubPath;
}
else
{
strFullFilename = RelativePathToAbsolutePath(strRelativePath,strRootFolder, bRelativePathToParentFolders);
}
fprintf(_pOutMakeFile,"
}
free( pcNewStr );
}
else
{
PrintFileName(xNode,strRootFolder);
}
}
}
CString RelativePathToAbsolutePath(LPCTSTR contentRelativePath,LPCTSTR rootPath, BOOL &bRelativePathToParentFolders)
{
CString strContentPath;
CString strFullPath;
CString tempPath = _T("");
strContentPath.Format(_T("%s"),contentRelativePath);
tempPath.Format(_T("%s"),contentRelativePath);
// First let's convert to the right kind of path seps:
strContentPath.Replace('/', PATH_SEPARATOR);
CString fullPath = rootPath;
int sepIndex = fullPath.ReverseFind(PATH_SEPARATOR);
// put those together, and we've got our full path
if (sepIndex >= 0)
{
BOOL gotPath = FALSE;
CString strAbsoluteFullPath;
bool bRelativeUp = false;
CString beginStr = strContentPath.Left(3);
bRelativeUp = ( beginStr.CompareNoCase(REL_PATH_STR_WIN) == 0 || beginStr.CompareNoCase(REL_PATH_STR_MAC) == 0 || beginStr.CompareNoCase(REL_PATH_STR_UNIX) == 0 );
bRelativePathToParentFolders = bRelativeUp;
strFullPath = fullPath.Left(sepIndex + 1);
if (!strContentPath.IsEmpty() && strFullPath != contentRelativePath && bRelativeUp) {
CString extension;
int period = strContentPath.ReverseFind('.');
if ( period >= 0 )
extension = strContentPath.Right(strContentPath.GetLength()-period-1);
if ( (extension.GetLength() == 3) || (extension.GetLength() == 1)) {
//strContentPath.Replace(_T("..\\"), _T(".\\"));
CreateFullPath(&strAbsoluteFullPath, strFullPath, strContentPath);
strFullPath = strAbsoluteFullPath;
strFullPath.Replace('/', PATH_SEPARATOR);
gotPath = FileExist(strFullPath);
if (gotPath)
return strFullPath;
else
return CString(_T(""));
}
else
return CString(_T(""));
}
else
{
int sepIndex = strContentPath.ReverseFind(PATH_SEPARATOR);
if (sepIndex >= 0) {
// We have a full path already
gotPath = FileExist(strContentPath);
if (gotPath)
return strContentPath;
}
// We have a relative path (subfolder)
CString extension = _T("");
int period = strContentPath.ReverseFind('.');
if ( period >= 0 )
extension = strContentPath.Right(strContentPath.GetLength()-period-1);
if (extension.GetLength() == 3) {
// single file name no sub folder
strFullPath = strFullPath + strContentPath;
gotPath = FileExist(strFullPath);
if (gotPath)
return strFullPath;
else
return CString(_T(""));
}
}
}
else
{
strFullPath = fullPath;
}
strFullPath += tempPath;
return strFullPath;
}
This will solve the following issue :)
http://stackoverflow.com/questions/1790417/matlab-deployment-add-files-to-source-control
Now let's look at a sample Matlab script which can be converted to an assembly.
Follow the following link
http://www.mathworks.com/matlabcentral/fileexchange/12987-integrating-matlab-with-c
There is a big problem when targeting .NET 4.0 for a client referencing a generated assembly targeting .NET 4.0 as far as I am concerned which should be fixed ASAP by Mathworks. This problem still remains with Matlab R2011a.
A C# client targeting .NET 4.0 will not run on Windows 7 64 bit. When the C# client will try to instantiate the class wrapper for the generated Matlab assembly using new, an exception will be thrown. Only 32 bit OS such as the old Windows XP will support both the .NET Framework 2.0 and 4.0. But not Windows 7 64 bit running as 32 bit. There is a dependency with .NET 2.0 for MWArray.dll at least I can't find the v4 version anywhere under C:\MATLAB\R2011a. Because .NET Framework 2.0 won't install on Windows 7 64 bit, I highly request the Mathworks folks to release MWArray.dll for .NET 4.0 and create a dependency with the 4.0 version when building the assembly. I always check target 4.0 but the dependency is still the 2.0. Maybe this is a fallback and I am missing the 4.0 version or maybe it is not supported.
Deployment Runtime
http://www.mathworks.com/help/toolbox/compiler/f12-999353.html
Thanks!

