Initial import of the Mono Add-in for Visual Studio 2005

svn path=/trunk/wintools/; revision=69450
This commit is contained in:
Francisco T. Martinez 2006-12-13 14:47:26 +00:00
Родитель d347925f7c
Коммит a2a44254e4
54 изменённых файлов: 6887 добавлений и 0 удалений

1
vsAddIn2005/AUTHORS Normal file
Просмотреть файл

@ -0,0 +1 @@
Francisco "Paco" Martinez

Двоичные данные
vsAddIn2005/BinandLib/CreateZipFromSln.exe Normal file

Двоичный файл не отображается.

Двоичные данные
vsAddIn2005/BinandLib/monoLaunchC.exe Normal file

Двоичный файл не отображается.

Двоичные данные
vsAddIn2005/BinandLib/monoLaunchW.exe Normal file

Двоичный файл не отображается.

Двоичные данные
vsAddIn2005/BinandLib/prj2makesharpWin32.exe Normal file

Двоичный файл не отображается.

343
vsAddIn2005/COPYING Normal file
Просмотреть файл

@ -0,0 +1,343 @@
You may use, distribute and copy vsprj2make under the terms of
GNU General Public License version 2, which is displayed below.
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
675 Mass Ave, Cambridge, MA 02139, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
Appendix: How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) 19yy <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) 19yy name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

6
vsAddIn2005/ChangeLog Normal file
Просмотреть файл

@ -0,0 +1,6 @@
2006-04-19 Francisco "Paco" Martinez <paco@mfcon.com>
* Initial import into mono's svn repository

Просмотреть файл

@ -0,0 +1,25 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using Mono.GetOptions;
//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly: AssemblyTitle("CreateZipFromSln")]
[assembly: AssemblyDescription("Creates a Zip File from a MS Visual Studio .NET solution file.")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("MFConsulting")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("(c) 2004")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: Mono.About("MFConsulting, (c) 2004")]
[assembly: Mono.Author("Paco Martinez")]
[assembly: Mono.UsageComplement("-f <input file path>")]
[assembly: AssemblyVersion("0.95.1.0")]
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]

Просмотреть файл

@ -0,0 +1,116 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectType>Local</ProjectType>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{7546314B-68AE-4067-B3F2-3D703AACED64}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ApplicationIcon>
</ApplicationIcon>
<AssemblyKeyContainerName>
</AssemblyKeyContainerName>
<AssemblyName>CreateZipFromSln</AssemblyName>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
<DefaultClientScript>JScript</DefaultClientScript>
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
<DefaultTargetSchema>IE50</DefaultTargetSchema>
<DelaySign>false</DelaySign>
<OutputType>Exe</OutputType>
<RootNamespace>Mfconsulting.Vsprj2make</RootNamespace>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<StartupObject>
</StartupObject>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<BaseAddress>285212672</BaseAddress>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DocumentationFile>
</DocumentationFile>
<DebugSymbols>true</DebugSymbols>
<FileAlignment>4096</FileAlignment>
<NoStdLib>false</NoStdLib>
<NoWarn>
</NoWarn>
<Optimize>false</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>4</WarningLevel>
<DebugType>full</DebugType>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Release\</OutputPath>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<BaseAddress>285212672</BaseAddress>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>TRACE</DefineConstants>
<DocumentationFile>
</DocumentationFile>
<DebugSymbols>false</DebugSymbols>
<FileAlignment>4096</FileAlignment>
<NoStdLib>false</NoStdLib>
<NoWarn>
</NoWarn>
<Optimize>true</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>4</WarningLevel>
<DebugType>none</DebugType>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="ICSharpCode.SharpZipLib">
<Name>ICSharpCode.SharpZipLib</Name>
<HintPath>..\reflib\ICSharpCode.SharpZipLib.dll</HintPath>
</Reference>
<Reference Include="Mono.GetOptions">
<Name>Mono.GetOptions</Name>
<HintPath>..\reflib\Mono.GetOptions.dll</HintPath>
</Reference>
<Reference Include="System">
<Name>System</Name>
</Reference>
<Reference Include="System.Data">
<Name>System.Data</Name>
</Reference>
<Reference Include="System.Xml">
<Name>System.XML</Name>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Drive.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="MainOpts.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="ZipCompressor.cs">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CreateZipFile", "CreateZipFile.csproj", "{7546314B-68AE-4067-B3F2-3D703AACED64}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{7546314B-68AE-4067-B3F2-3D703AACED64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7546314B-68AE-4067-B3F2-3D703AACED64}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7546314B-68AE-4067-B3F2-3D703AACED64}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7546314B-68AE-4067-B3F2-3D703AACED64}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Просмотреть файл

@ -0,0 +1,254 @@
using System;
using System.Collections;
using System.IO;
using System.Text.RegularExpressions;
namespace Mfconsulting.Vsprj2make
{
/// <summary>
/// Summary description for Drive.
/// </summary>
public class Drive
{
static System.Collections.ArrayList g_straDirList = new ArrayList();
static System.Collections.ArrayList g_straFileList = new ArrayList();
static char []g_chaSeparator = {';'};
static string g_strBlacListedDirectories = "CVS;obj;.svn";
static string g_strBlacListedFiles = ".suo;.cvsignore;.vssscc;.vspscc";
public Drive()
{
//
// TODO: Add constructor logic here
//
}
public static void Main(string[] args)
{
string strOutFile;
string strSolutionFile;
MainOpts optObj = new MainOpts();
ZipCompressor zcObj = new ZipCompressor();
int i;
// Handle command line arguments
optObj.ProcessArgs(args);
// Hangle no parameters being passed
if(args.Length < 1 || optObj.SolutionFile.Length < 1)
{
optObj.DoHelp();
return;
}
// Check for BlackListed Extensions being passed
if(optObj.Extensions.Length > 0)
{
g_strBlacListedFiles = optObj.Extensions;
}
// Check for BlackListed directories being passed
if(optObj.BlacListedDirectories.Length > 0)
{
g_strBlacListedDirectories = optObj.BlacListedDirectories;
}
strSolutionFile = optObj.SolutionFile;
if(optObj.OutputFilePath.Length > 0)
{
strOutFile = optObj.OutputFilePath;
}
else
{
strOutFile =
Path.Combine(
Path.GetDirectoryName(strSolutionFile),
(Path.GetFileNameWithoutExtension(strSolutionFile) + ".zip")
);
}
if(System.IO.Path.GetExtension(strSolutionFile).ToUpper().CompareTo(".SLN") != 0)
{
Console.WriteLine("The file you submited does not seem like a Visual Studio .NET Solution file.");
return;
}
// Parse solution
Drive.ParseSolution(strSolutionFile);
// build a string array of the base solution directory
// and the projects directory
string []straBaseDirs = new string[g_straDirList.Count];
for(i = 0; i < straBaseDirs.Length; i++)
{
straBaseDirs[i] = (string)g_straDirList[i];
AddFilesToFileList(straBaseDirs[i]);
}
// Clear the global Directory ArrayList
g_straDirList.Clear();
// Build the File ArrayList
string []straFilenames = new string[g_straFileList.Count];
for(i = 0; i < straFilenames.Length; i++)
{
straFilenames[i] = (string)g_straFileList[i];
}
// Clear the global File ArrayList
g_straFileList.Clear();
// Invoke the Programs main functionality and purpose
zcObj.CompressionLevel = optObj.Level;
zcObj.CreateZipFile(straFilenames, strOutFile);
}
#region Support functions
/// <summary>
/// Parse through all the projects in a given solution
/// </summary>
/// <param name="strFname">The fully qualified path to the solution file.</param>
static void ParseSolution(string strFname)
{
string strSolutionDir;
FileStream fis = new FileStream(
strFname,
FileMode.Open,
FileAccess.Read,
FileShare.Read
);
StreamReader reader = new StreamReader(fis);
Regex regex = new Regex(@"Project\(""\{(.*)\}""\) = ""(.*)"", ""(.*)"", ""(\{.*\})""");
// Get the solution directory and added
strSolutionDir = System.IO.Path.GetDirectoryName(strFname);
// Change the current directory to the solution directory
System.IO.Directory.SetCurrentDirectory(strSolutionDir);
Drive.g_straDirList.Add(strSolutionDir);
while (true)
{
string s = reader.ReadLine();
Match match;
match = regex.Match(s);
if (match.Success)
{
string projectName = match.Groups[2].Value;
string csprojPath = match.Groups[3].Value;
string projectGuid = match.Groups[4].Value;
if (csprojPath.StartsWith("http://"))
{
Console.WriteLine("WARNING: got http:// project, guessing actual path.");
csprojPath = Path.Combine(projectName, Path.GetFileName(csprojPath));
}
if (csprojPath.EndsWith (".csproj"))
{
string strProjDir = System.IO.Path.GetDirectoryName(
System.IO.Path.GetFullPath(csprojPath));
if(strProjDir.CompareTo(strSolutionDir) != 0)
{
Drive.g_straDirList.Add(strProjDir);
// Recurse to look for subdirs
ListSubDirs(strProjDir);
}
else
{
ListSubDirs(strProjDir);
}
}
}
if (s.StartsWith("Global"))
{
break;
}
}
}
/// <summary>
/// Iterates through all of the directories (if any) that
/// are contained within a given directory
/// </summary>
/// <param name="strInDirPath">An imput string that
/// represents the directory to search in</param>
public static void ListSubDirs(string strInDirPath)
{
System.IO.DirectoryInfo di = new DirectoryInfo(strInDirPath);
foreach(System.IO.DirectoryInfo diObj in di.GetDirectories())
{
// Determine if is fit
if(IsDirBlackListed(diObj.Name) == false)
{
g_straDirList.Add(diObj.FullName);
ListSubDirs(diObj.FullName);
}
}
}
/// <summary>
/// Determines if a directory name is listed on the ignore.
/// </summary>
/// <param name="strInDirName">String value that represents the name to check.</param>
/// <returns>Returns true if black listed or false otherwise</returns>
public static bool IsDirBlackListed(string strInDirName)
{
string []straBlackListItems = g_strBlacListedDirectories.Split(g_chaSeparator);
foreach(string strDirName in straBlackListItems)
{
if(strInDirName.ToUpper().CompareTo(strDirName.ToUpper()) == 0)
return true;
}
return false;
}
/// <summary>
/// Determines if a given file name is in the Black List
/// </summary>
/// <param name="strInFileName">The file name to check against the list</param>
/// <returns>Returns true if black listed or false otherwise</returns>
public static bool IsFileBlackListed(string strInFileName)
{
string []straBlackListItems = g_strBlacListedFiles.Split(g_chaSeparator);
foreach(string strExtention in straBlackListItems)
{
if(Path.GetExtension(strInFileName).ToUpper().CompareTo(strExtention.ToUpper()) == 0)
return true;
}
return false;
}
/// <summary>
/// Extract the list of files from a given directory and
/// inserts them into the global File ArrayList
/// </summary>
/// <param name="strInDirPath">The full directory path to look for files</param>
public static void AddFilesToFileList(string strInDirPath)
{
string []straFiles = Directory.GetFiles(strInDirPath);
foreach(string strFileName in straFiles)
{
// Check to see if blacklisted
if(IsFileBlackListed(strFileName) == false)
{
Drive.g_straFileList.Add(strFileName);
}
}
}
#endregion
}
}

Просмотреть файл

@ -0,0 +1,34 @@
using System;
using System.Collections;
using Mono.GetOptions;
namespace Mfconsulting.Vsprj2make
{
class MainOpts : Options
{
[Option(1, "Compression level", 'l')]
public int Level = 4;
[Option(1, "Ignored extensions", "IgnoredExtensions")]
public string Extensions = ".suo,.cvsignore,.vssscc,.vspscc";
[Option(1, "Ignored directories", "IgnoredDirectories")]
public string BlacListedDirectories = "CVS,obj,.svn";
[Option(1, "Output file path", 'o')]
public string OutputFilePath = "";
[Option(1, "Input solution or project file", 'f')]
public string SolutionFile = "";
public MainOpts()
{
ParsingMode = OptionsParsingMode.Both;
BreakSingleDashManyLettersIntoManyOptions = false;
EndOptionProcessingWithDoubleDash = true;
if (System.IO.Path.DirectorySeparatorChar.CompareTo('/') == 0)
ParsingMode = OptionsParsingMode.Linux;
}
}
}

Просмотреть файл

@ -0,0 +1,37 @@
!if !defined (TARGET)
TARGET=.\bin\Debug
!else
TARGET=.\bin\$(TARGET)
!endif
MCS=mcs
!if !defined(RELEASE)
MCSFLAGS=-debug --stacktrace
!endif
CREATEZIPFILE_EXE=$(TARGET)\CreateZipFromSln.exe
CREATEZIPFILE_PDB=$(TARGET)\CreateZipFromSln.exe.mdb
CREATEZIPFILE_SRC=AssemblyInfo.cs \
Drive.cs \
ZipCompressor.cs \
MainOpts.cs
CREATEZIPFILE_RES=
$(CREATEZIPFILE_EXE): $(CREATEZIPFILE_SRC)
-md $(TARGET)
$(MCS) $(MCSFLAGS) -r:System.dll -r:System.Data.dll -r:System.Xml.dll -r:ICSharpCode.SharpZipLib.dll -r:Mono.GetOptions.dll -target:exe -out:$(CREATEZIPFILE_EXE) $(CREATEZIPFILE_RES) $(CREATEZIPFILE_SRC)
# common targets
all: $(CREATEZIPFILE_EXE)
clean:
-del "$(CREATEZIPFILE_EXE)" 2> nul
-del "$(CREATEZIPFILE_PDB)" 2> nul
# project names as targets
CreateZipFile: $(CREATEZIPFILE_EXE)

Просмотреть файл

@ -0,0 +1,92 @@
using System;
using System.IO;
using ICSharpCode.SharpZipLib.Checksums;
using ICSharpCode.SharpZipLib.Zip;
using ICSharpCode.SharpZipLib.GZip;
namespace Mfconsulting.Vsprj2make
{
public class ZipCompressor
{
/// <summary>
/// Level of compression
/// </summary>
public int m_nCompressionLevel = 6;
/// <summary>
/// Level of compression
/// </summary>
public int CompressionLevel
{
get { return m_nCompressionLevel; }
set
{
if(value > 9)
{
m_nCompressionLevel = 9;
return;
}
if(value < 1)
{
m_nCompressionLevel = 1;
return;
}
m_nCompressionLevel = value;
}
}
public string GetFileNameWithoutDrive(string strInFullPath)
{
System.IO.DirectoryInfo diObj = null;
string strRetVal;
string strFileName = System.IO.Path.GetFileName(strInFullPath);
string strDirectory = System.IO.Path.GetDirectoryName(strInFullPath);
diObj = new DirectoryInfo(strDirectory);
strRetVal = String.Format("{0}{1}{2}",
diObj.FullName.Substring(diObj.Root.Name.Length),
System.IO.Path.DirectorySeparatorChar,
strFileName
);
return strRetVal.Replace("\\", "/");
}
public void CreateZipFile(string[] straFilenames, string strOutputFilename)
{
Crc32 crc = new Crc32();
ZipOutputStream zos = new ZipOutputStream(File.Create(strOutputFilename));
zos.SetLevel(m_nCompressionLevel);
foreach (string strFileName in straFilenames)
{
FileStream fs = File.OpenRead(strFileName);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
ZipEntry entry = new ZipEntry(GetFileNameWithoutDrive(strFileName));
entry.DateTime = DateTime.Now;
entry.Size = fs.Length;
fs.Close();
crc.Reset();
crc.Update(buffer);
entry.Crc = crc.Value;
zos.PutNextEntry(entry);
zos.Write(buffer, 0, buffer.Length);
}
zos.Finish();
zos.Close();
}
}
}

3
vsAddIn2005/INSTALL Normal file
Просмотреть файл

@ -0,0 +1,3 @@
INSTALL.txt for monoaddin
-------------------------------------------

Просмотреть файл

@ -0,0 +1,170 @@
using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Serialization;
namespace Mfconsulting.General.Prj2Make
{
class CsprojInfo
{
public readonly string name;
public readonly string guid;
public readonly string csprojpath;
public string makename;
public string makename_ext;
public string assembly_name;
public string res;
public string src;
private bool m_bAllowUnsafeCode;
private Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject m_projObject;
public string ext_refs = "";
public string switches = "";
public bool AllowUnsafeCode
{
get { return m_bAllowUnsafeCode; }
}
public Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject Proyecto
{
get { return m_projObject; }
}
// Project desirialization
protected Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject LoadPrjFromFile (string strIn)
{
FileStream fs = new FileStream (strIn, FileMode.Open);
XmlSerializer xmlSer = new XmlSerializer (typeof(Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject));
Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject prjObj = (Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject) xmlSer.Deserialize (fs);
fs.Close();
return (prjObj);
}
public CsprojInfo(bool isUnixMode, bool isMcsMode, string name, string guid, string csprojpath)
{
this.name = name;
this.guid = guid;
this.csprojpath = csprojpath;
makename = name.Replace('.','_').ToUpper();
makename_ext = makename + "_EXT";
m_bAllowUnsafeCode = false;
// convert backslashes to slashes
csprojpath = csprojpath.Replace("\\", "/");
// loads the file in order to deserialize and
// build the object graph
try
{
m_projObject = LoadPrjFromFile (csprojpath);
}
catch (Exception exc)
{
Console.WriteLine (
String.Format ("Could not load the file {0}\nException: {1}",
csprojpath,
exc.Message)
);
return;
}
// Establish if the allow unsafe code flag is true
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.Config cf in m_projObject.CSHARP.Build.Settings.Config)
{
if(cf.AllowUnsafeBlocks == true)
m_bAllowUnsafeCode = true;
}
switch (m_projObject.CSHARP.Build.Settings.OutputType)
{
case "Library":
makename_ext = makename + "_DLL";
assembly_name = m_projObject.CSHARP.Build.Settings.AssemblyName + ".dll";
switches += " -target:library";
break;
case "Exe":
makename_ext = makename + "_EXE";
assembly_name = m_projObject.CSHARP.Build.Settings.AssemblyName + ".exe";
switches += " -target:exe";
break;
case "WinExe":
makename_ext = makename + "_EXE";
assembly_name = m_projObject.CSHARP.Build.Settings.AssemblyName + ".exe";
switches += " -target:winexe";
break;
default:
throw new NotSupportedException("Unsupported OutputType: " + m_projObject.CSHARP.Build.Settings.OutputType);
}
src = "";
string basePath = Path.GetDirectoryName(csprojpath);
string s;
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.File fl in m_projObject.CSHARP.Files.Include)
{
if(fl.BuildAction == Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.Compile)
{
if (src != "")
{
src += " \\\n\t";
}
s = System.IO.Path.Combine(basePath, fl.RelPath);
s = s.Replace("\\", "/");
if (SlnMaker.slash != "/")
s = s.Replace("/", SlnMaker.slash);
// Test for spaces
if (isUnixMode == false) {
// We are in win32 using a cmd.exe or other
// DOS shell
if(s.IndexOf(' ') > -1) {
src += String.Format("\"{0}\"", s);
} else {
src += s;
}
} else {
// We are in *NIX or some other
// GNU like shell
src += s.Replace(" ", "\\ ");
}
}
}
res = "";
string rootNS = m_projObject.CSHARP.Build.Settings.RootNamespace;
string relPath;
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.File fl in m_projObject.CSHARP.Files.Include)
{
if(fl.BuildAction == Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.EmbeddedResource)
{
if (res != "") {
res += " \\\n\t";
}
relPath = fl.RelPath.Replace("\\", "/");
s = System.IO.Path.Combine(basePath, relPath);
s = String.Format("-resource:{0},{1}", s, rootNS + "." + relPath.Replace("/", "."));
s = s.Replace("\\", "/");
if (SlnMaker.slash != "/")
s = s.Replace("/", SlnMaker.slash);
res += s;
}
}
}
}
}

Просмотреть файл

@ -0,0 +1,188 @@
using System;
using System.Diagnostics;
using System.Collections;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Serialization;
namespace Mfconsulting.General.Prj2Make
{
class CsprojInfo2005
{
public readonly string name;
public readonly string guid;
public readonly string csprojpath;
public string makename;
public string makename_ext;
public string assembly_name;
public string res;
public string src;
private bool m_bAllowUnsafeCode;
private Mfconsulting.General.Prj2Make.Schema.Csproj2005.Project m_projObject;
public string ext_refs = "";
public string switches = "";
public bool AllowUnsafeCode
{
get { return m_bAllowUnsafeCode; }
}
public Mfconsulting.General.Prj2Make.Schema.Csproj2005.Project Proyecto
{
get { return m_projObject; }
}
// Project desirialization
protected Mfconsulting.General.Prj2Make.Schema.Csproj2005.Project LoadPrjFromFile (string strIn)
{
FileStream fs = new FileStream (strIn, FileMode.Open);
Mfconsulting.General.Prj2Make.Schema.Csproj2005.Project prjObj = null;
try
{
XmlSerializer xmlSer = new XmlSerializer(typeof(Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject));
prjObj = (Mfconsulting.General.Prj2Make.Schema.Csproj2005.Project)xmlSer.Deserialize(fs);
}
catch (Exception exc)
{
Trace.WriteLine(String.Format("Error while deserializing file: {0}\n{1}", strIn, exc.Message));
}
fs.Close();
return (prjObj);
}
public CsprojInfo2005(bool isUnixMode, bool isMcsMode, string name, string guid, string csprojpath)
{
this.name = name;
this.guid = guid;
this.csprojpath = csprojpath;
makename = name.Replace('.','_').ToUpper();
makename_ext = makename + "_EXT";
m_bAllowUnsafeCode = false;
// convert backslashes to slashes
csprojpath = csprojpath.Replace("\\", "/");
// loads the file in order to deserialize and
// build the object graph
try
{
m_projObject = LoadPrjFromFile (csprojpath);
}
catch (Exception exc)
{
Console.WriteLine (
String.Format ("Could not load the file {0}\nException: {1}",
csprojpath,
exc.Message)
);
return;
}
// Establish if the allow unsafe code flag is true
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj2005.PropertyGroup propGrp in m_projObject.PropertyGroup)
{
if (propGrp.AllowUnsafeBlocks == true)
m_bAllowUnsafeCode = true;
}
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj2005.PropertyGroup propGrp in m_projObject.PropertyGroup)
{
switch (propGrp.OutputType)
{
case "Library":
makename_ext = makename + "_DLL";
assembly_name = m_projObject.PropertyGroup[0].AssemblyName + ".dll";
switches += " -target:library";
break;
case "Exe":
makename_ext = makename + "_EXE";
assembly_name = m_projObject.PropertyGroup[0].AssemblyName + ".exe";
switches += " -target:exe";
break;
case "WinExe":
makename_ext = makename + "_EXE";
assembly_name = m_projObject.PropertyGroup[0].AssemblyName + ".exe";
switches += " -target:winexe";
break;
default:
throw new NotSupportedException("Unsupported OutputType: " + propGrp.OutputType);
}
}
src = "";
string basePath = Path.GetDirectoryName(csprojpath);
string s;
foreach (object[][] itemGrpArray in m_projObject.ItemGroup)
{
foreach (object[] itemGrp in itemGrpArray)
{
}
}
//foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.File fl in m_projObject.CSHARP.Files.Include)
//{
// if(fl.BuildAction == Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.Compile)
// {
// if (src != "")
// {
// src += " \\\n\t";
// }
// s = System.IO.Path.Combine(basePath, fl.RelPath);
// s = s.Replace("\\", "/");
// if (SlnMaker.slash != "/")
// s = s.Replace("/", SlnMaker.slash);
// // Test for spaces
// if (isUnixMode == false) {
// // We are in win32 using a cmd.exe or other
// // DOS shell
// if(s.IndexOf(' ') > -1) {
// src += String.Format("\"{0}\"", s);
// } else {
// src += s;
// }
// } else {
// // We are in *NIX or some other
// // GNU like shell
// src += s.Replace(" ", "\\ ");
// }
// }
//}
//res = "";
//string rootNS = m_projObject.CSHARP.Build.Settings.RootNamespace;
//string relPath;
//foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.File fl in m_projObject.CSHARP.Files.Include)
//{
// if(fl.BuildAction == Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.EmbeddedResource)
// {
// if (res != "") {
// res += " \\\n\t";
// }
// relPath = fl.RelPath.Replace("\\", "/");
// s = System.IO.Path.Combine(basePath, relPath);
// s = String.Format("-resource:{0},{1}", s, rootNS + "." + relPath.Replace("/", "."));
// s = s.Replace("\\", "/");
// if (SlnMaker.slash != "/")
// s = s.Replace("/", SlnMaker.slash);
// res += s;
// }
//}
}
}
}

Просмотреть файл

@ -0,0 +1,45 @@
!if !defined (TARGET)
TARGET=.\bin\Debug
!else
TARGET=.\bin\$(TARGET)
!endif
MCS=mcs
!if !defined(RELEASE)
MCSFLAGS=-debug --stacktrace
!endif
PRJ2MAKESHARP_EXE=$(TARGET)\prj2makesharpWin32.exe
PRJ2MAKESHARP_PDB=$(TARGET)\prj2makesharpWin32.exe.mdb
PRJ2MAKESHARP_SRC=csproj_ver2003.cs \
CsprojInfo.cs \
MdPrjHelper.cs \
MsPrjHelper.cs \
pkgconfiginvoker.cs \
PrjHelper.cs \
PrjxInfo.cs \
sharp_d_cmbx.cs \
sharp_d_prjx.cs \
cui\AssemblyInfo.cs \
cui\Main.cs \
cui\MainMod.cs \
cui\MainOpts.cs
PRJ2MAKESHARP_RES=
$(PRJ2MAKESHARP_EXE): $(PRJ2MAKESHARP_SRC)
-md $(TARGET)
$(MCS) $(MCSFLAGS) -r:System.Xml.dll -r:Mono.GetOptions.dll -r:System.dll -target:exe -out:$(PRJ2MAKESHARP_EXE) $(PRJ2MAKESHARP_RES) $(PRJ2MAKESHARP_SRC)
# common targets
all: $(PRJ2MAKESHARP_EXE)
clean:
-del "$(PRJ2MAKESHARP_EXE)" 2> nul
-del "$(PRJ2MAKESHARP_PDB)" 2> nul
# project names as targets
prj2makesharp: $(PRJ2MAKESHARP_EXE)

Просмотреть файл

@ -0,0 +1,362 @@
using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Serialization;
using System.Diagnostics;
namespace Mfconsulting.General.Prj2Make
{
public class CmbxMaker
{
public static string slash;
static Hashtable projNameInfo = new Hashtable();
static Hashtable projGuidInfo = new Hashtable();
private Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine m_cmbObject;
private bool m_bIsUnix;
private bool m_bIsMcs;
private bool m_bIsUsingLib;
// Flag use to determine if the LIB variable will be used in
// the Makefile that prj2make generates
public bool IsUsingLib
{
get{ return m_bIsUsingLib; }
set{ m_bIsUsingLib = value; }
}
// Determines if the makefile is intended for nmake or gmake for urposes of path separator character
public bool IsUnix
{
get{ return m_bIsUnix; }
set{ m_bIsUnix = value; }
}
// Determines if using MCS or CSC
public bool IsMcs
{
get{ return m_bIsMcs; }
set{ m_bIsMcs = value; }
}
public Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine Solucion {
get { return m_cmbObject; }
}
public CmbxMaker()
{
m_bIsUnix = false;
m_bIsMcs = false;
m_bIsUsingLib = false;
}
// Combine desirialization
protected Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine LoadCmbFromFile (string strIn)
{
FileStream fs = new FileStream (strIn, FileMode.Open);
XmlSerializer xmlSer = new XmlSerializer (typeof(Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine));
Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine cmbObj = (Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine) xmlSer.Deserialize (fs);
fs.Close();
return (cmbObj);
}
protected void ParseMdCsProj(string fname)
{
string projectName;
PrjxInfo pi = new PrjxInfo(m_bIsUnix, m_bIsMcs, fname);
projectName = pi.name;
projNameInfo[projectName] = pi;
}
protected void ParseCombine(string fname)
{
string CombineFilePath = fname;
// convert backslashes to slashes
CombineFilePath = CombineFilePath.Replace("\\", "/");
// loads the file in order to deserialize and
// build the object graph
try {
m_cmbObject = LoadCmbFromFile (CombineFilePath);
} catch (Exception exc) {
Console.WriteLine (
String.Format ("Could not load the file {0}\nException: {1}",
CombineFilePath,
exc.Message)
);
return;
}
foreach(Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry ent in m_cmbObject.Entries)
{
string projectName = System.IO.Path.GetFileNameWithoutExtension(ent.filename);
string csprojPath = ent.filename;
if (csprojPath.EndsWith(".prjx"))
{
PrjxInfo pi = new PrjxInfo(m_bIsUnix, m_bIsMcs, csprojPath);
projNameInfo[projectName] = pi;
}
}
}
public string MdCmbxHelper(bool isUnixMode, bool isMcsMode, bool isSln, string slnFile)
{
bool noCommonTargets = false;
bool noProjectTargets = false;
bool noFlags = false;
int nPos = -1;
StringBuilder MakefileBuilder = new StringBuilder();
m_bIsUnix = isUnixMode;
m_bIsMcs = isMcsMode;
if(m_bIsUnix == true && m_bIsMcs == true)
{
m_bIsUsingLib = true;
}
if (m_bIsUnix)
{
slash = "/";
}
else
{
slash = "\\";
}
try
{
string d = Path.GetDirectoryName(slnFile);
if (d != "")
Directory.SetCurrentDirectory(d);
if (isSln == true) {
// We invoke the ParseSolution
// by passing the file obtained
ParseCombine (slnFile);
} else {
// We invoke the ParseMsCsProj
// by passing the file obtained
ParseMdCsProj (slnFile);
}
if (!noFlags)
{
if (m_bIsUnix) // gmake
{
MakefileBuilder.Append("ifndef TARGET\n");
MakefileBuilder.Append("\tTARGET=./bin/Debug\n");
MakefileBuilder.Append("else\n");
MakefileBuilder.Append("\tTARGET=./bin/$(TARGET)\n");
MakefileBuilder.Append("endif\n\n");
if (m_bIsMcs == false)
{
MakefileBuilder.Append("MCS=csc\n");
MakefileBuilder.Append("MCSFLAGS=-nologo\n\n");
MakefileBuilder.Append("ifdef (RELEASE)\n");
MakefileBuilder.Append("\tMCSFLAGS=$(MCSFLAGS) -optimize+ -d:TRACE\n");
MakefileBuilder.Append("else\n");
MakefileBuilder.Append("\tMCSFLAGS=$(MCSFLAGS) -debug+ -d:TRACE,DEBUG\n");
MakefileBuilder.Append("endif\n");
}
else
{
MakefileBuilder.Append("MCS=mcs\n");
MakefileBuilder.Append("ifndef (RELEASE)\n");
MakefileBuilder.Append("\tMCSFLAGS=-debug --stacktrace\n");
MakefileBuilder.Append("endif\n");
// Define and add the information used in the -lib: arguments passed to the
// compiler to assist in finding non-fullyqualified assembly references.
if(m_bIsUsingLib == true)
{
MakefileBuilder.AppendFormat("LIBS=-lib:{0}/mono/1.0 -lib:{1}/mono/gtk-sharp\n\n",
"`pkg-config --variable=libdir mono`",
"`pkg-config --variable=libdir gtk-sharp`"
);
}
}
}
else // nmake
{
MakefileBuilder.Append("!if !defined (TARGET)\n");
MakefileBuilder.Append("TARGET=.\\bin\\Debug\n");
MakefileBuilder.Append("!else\n");
MakefileBuilder.Append("TARGET=.\\bin\\$(TARGET)\n");
MakefileBuilder.Append("!endif\n\n");
if (m_bIsMcs == false)
{
MakefileBuilder.Append("MCS=csc\n");
MakefileBuilder.Append("MCSFLAGS=-nologo\n\n");
MakefileBuilder.Append("!if !defined(RELEASE)\n");
MakefileBuilder.Append("MCSFLAGS=$(MCSFLAGS) -optimize+ -d:TRACE\n");
MakefileBuilder.Append("!else\n");
MakefileBuilder.Append("MCSFLAGS=$(MCSFLAGS) -debug+ -d:TRACE,DEBUG\n");
MakefileBuilder.Append("!endif\n");
}
else
{
MakefileBuilder.Append("MCS=mcs\n");
MakefileBuilder.Append("!if !defined(RELEASE)\n");
MakefileBuilder.Append("MCSFLAGS=-debug --stacktrace\n");
MakefileBuilder.Append("!endif\n");
}
}
MakefileBuilder.Append("\n");
}
else
{
MakefileBuilder.Append("!if !defined(MCS)\n");
MakefileBuilder.Append("!error You must provide MCS when making\n");
MakefileBuilder.Append("!endif\n\n");
}
foreach (PrjxInfo prjI in projNameInfo.Values)
{
MakefileBuilder.AppendFormat("{0}=$(TARGET){1}{2}\n", prjI.makename_ext, slash, prjI.assembly_name);
MakefileBuilder.AppendFormat("{0}_PDB=$(TARGET){1}{2}\n", prjI.makename, slash, prjI.assembly_name.Replace(".dll",".pdb"));
MakefileBuilder.AppendFormat("{0}_SRC={1}\n", prjI.makename, prjI.src);
MakefileBuilder.AppendFormat("{0}_RES={1}\n\n", prjI.makename, prjI.res);
}
foreach (PrjxInfo pi in projNameInfo.Values)
{
string refs = "";
string deps = "";
foreach (Mfconsulting.General.Prj2Make.Schema.Prjx.Reference rf in pi.Proyecto.References)
{
if (refs != "")
refs += " ";
string assemblyName = rf.refto;
// HACK - under Unix filenames are case sensitive
// Under Windows there's no agreement on Xml vs XML ;-)
if (0 == String.Compare(assemblyName, "System.Xml", true))
{
assemblyName = "System.Xml";
}
// Check to see if there is a coma in the
// reference. This could indicate a GAC
// style reference
nPos = assemblyName.IndexOf(',');
if(nPos == -1)
{
if (System.IO.Path.GetExtension(assemblyName).ToUpper().CompareTo(".DLL") == 0)
{
refs += "-r:" + assemblyName;
}
else
{
refs += "-r:" + assemblyName + ".dll";
}
}
else
{
refs += "-r:" + assemblyName.Substring(0, nPos) + ".dll";
}
}
MakefileBuilder.AppendFormat("$({0}): $({1}_SRC) {2}\n", pi.makename_ext, pi.makename, deps);
if (isUnixMode)
{
MakefileBuilder.Append("\t-mkdir -p $(TARGET)\n");
}
else
{
MakefileBuilder.Append("\t-md $(TARGET)\n");
}
MakefileBuilder.Append("\t$(MCS) $(MCSFLAGS)");
// Test to see if any configuratino has the Allow unsafe blocks on
if(pi.AllowUnsafeCode == true ) {
MakefileBuilder.Append(" -unsafe");
}
// Test for LIBS usage
if(m_bIsUsingLib == true) {
MakefileBuilder.Append(" $(LIBS)");
}
MakefileBuilder.AppendFormat(" {2}{3} -out:$({0}) $({1}_RES) $({1}_SRC)\n",
pi.makename_ext, pi.makename, refs, pi.switches);
MakefileBuilder.Append("\n");
}
if (!noCommonTargets)
{
MakefileBuilder.Append("\n");
MakefileBuilder.Append("# common targets\n\n");
MakefileBuilder.Append("all:\t");
bool first = true;
foreach (PrjxInfo pi in projNameInfo.Values)
{
if (!first)
{
MakefileBuilder.Append(" \\\n\t");
}
MakefileBuilder.AppendFormat("$({0})", pi.makename_ext);
first = false;
}
MakefileBuilder.Append("\n\n");
MakefileBuilder.Append("clean:\n");
foreach (PrjxInfo pi in projNameInfo.Values)
{
if (isUnixMode)
{
MakefileBuilder.AppendFormat("\t-rm -f \"$({0})\" 2> /dev/null\n", pi.makename_ext);
MakefileBuilder.AppendFormat("\t-rm -f \"$({0}_PDB)\" 2> /dev/null\n", pi.makename);
}
else
{
MakefileBuilder.AppendFormat("\t-del \"$({0})\" 2> nul\n", pi.makename_ext);
MakefileBuilder.AppendFormat("\t-del \"$({0}_PDB)\" 2> nul\n", pi.makename);
}
}
MakefileBuilder.Append("\n");
}
if (!noProjectTargets)
{
MakefileBuilder.Append("\n");
MakefileBuilder.Append("# project names as targets\n\n");
foreach (PrjxInfo pi in projNameInfo.Values)
{
MakefileBuilder.AppendFormat("{0}: $({1})\n", pi.name, pi.makename_ext);
}
}
}
catch (Exception e)
{
Console.WriteLine("EXCEPTION: {0}\n", e);
return "";
}
return MakefileBuilder.ToString();
}
}
}

Просмотреть файл

@ -0,0 +1,910 @@
using System;
using System.Diagnostics;
using System.Collections;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Serialization;
using Mfconsulting.General.Prj2Make.Schema.Prjx;
using Mfconsulting.General.Prj2Make.Schema.Csproj;
namespace Mfconsulting.General.Prj2Make
{
public class SlnMaker
{
public static string slash;
static Hashtable projNameInfo = new Hashtable();
static Hashtable projGuidInfo = new Hashtable();
private string prjxFileName = null;
private string cmbxFileName = null;
private string m_strSlnVer;
private string m_strCsprojVer;
private bool m_bIsUnix;
private bool m_bIsMcs;
private bool m_bIsUsingLib;
// Flag use to determine if the LIB variable will be used in
// the Makefile that prj2make generates
public bool IsUsingLib
{
get{ return m_bIsUsingLib; }
set{ m_bIsUsingLib = value; }
}
// Determines if the makefile is intended for nmake or gmake for urposes of path separator character
public bool IsUnix
{
get{ return m_bIsUnix; }
set{ m_bIsUnix = value; }
}
// Determines if using MCS or CSC
public bool IsMcs
{
get{ return m_bIsMcs; }
set{ m_bIsMcs = value; }
}
public string SlnVersion
{
get { return m_strSlnVer; }
set { m_strSlnVer = value; }
}
public string CsprojVersion
{
get { return m_strCsprojVer; }
set { m_strCsprojVer = value; }
}
// Shuld contain the file name
// of the most resent prjx generation
public string PrjxFileName {
get { return prjxFileName; }
}
// Shuld contain the file name
// of the most resent cmbx generation
public string CmbxFileName {
get { return cmbxFileName; }
}
// Default constructor
public SlnMaker()
{
m_bIsUnix = false;
m_bIsMcs = false;
m_bIsUsingLib = false;
}
// Utility function to determine the sln file version
protected string GetSlnFileVersion(string strInSlnFile)
{
string strVersion = null;
string strInput = "";
Match match;
FileStream fis = new FileStream(strInSlnFile, FileMode.Open, FileAccess.Read, FileShare.Read);
StreamReader reader = new StreamReader(fis);
Regex regex = new Regex(@"Microsoft Visual Studio Solution File, Format Version (\d.\d\d)");
while (strInput.StartsWith("Microsoft Visual Studio Solution") == false && strInput != null)
{
strInput = reader.ReadLine();
}
match = regex.Match(strInput);
if (match.Success)
{
strVersion = match.Groups[1].Value;
}
// Close the stream
reader.Close();
// Close the File Stream
fis.Close();
return strVersion;
}
// Utility function to determine the csproj file version
protected string GetCsprojFileVersion(string strInCsprojFile)
{
string strRetVal = null;
XmlDocument xmlDoc = new XmlDocument();
XmlNode prodVerNode = null;
XmlNode firstPropGroupNode = null;
xmlDoc.Load(strInCsprojFile);
// Try assuming VS 2003
prodVerNode = xmlDoc.SelectSingleNode("/VisualStudioProject/CSHARP/@ProductVersion");
if (prodVerNode == null)
{
// Try assuming VS 2005
firstPropGroupNode = xmlDoc.FirstChild.FirstChild;
foreach (XmlNode theNode in firstPropGroupNode.ChildNodes)
{
if (theNode.Name.CompareTo("ProductVersion") == 0)
{
prodVerNode = theNode;
}
}
strRetVal = prodVerNode.InnerText;
}
else
{
strRetVal = prodVerNode.Value;
}
return strRetVal;
}
protected void ParseMsCsProj(string fname)
{
string projectName = System.IO.Path.GetFileNameWithoutExtension (fname);
string csprojPath = System.IO.Path.GetFileName (fname);
string projectGuid = "";
if (m_strCsprojVer.StartsWith("7.1"))
{
CsprojInfo pi = new CsprojInfo(m_bIsUnix, m_bIsMcs, projectName, projectGuid, csprojPath);
projNameInfo[projectName] = pi;
projGuidInfo[projectGuid] = pi;
}
else if(m_strCsprojVer.StartsWith("8"))
{
CsprojInfo2005 pi = new CsprojInfo2005(m_bIsUnix, m_bIsMcs, projectName, projectGuid, csprojPath);
projNameInfo[projectName] = pi;
projGuidInfo[projectGuid] = pi;
}
}
protected void ParseSolution(string fname)
{
FileStream fis = new FileStream(fname,FileMode.Open, FileAccess.Read, FileShare.Read);
StreamReader reader = new StreamReader(fis);
Regex regex = new Regex(@"Project\(""\{(.*)\}""\) = ""(.*)"", ""(.*)"", ""(\{.*\})""");
while (true)
{
string s = reader.ReadLine();
Match match;
match = regex.Match(s);
if (match.Success)
{
string projectName = match.Groups[2].Value;
string csprojPath = match.Groups[3].Value;
string projectGuid = match.Groups[4].Value;
if (csprojPath.EndsWith (".csproj") && !csprojPath.StartsWith("http://"))
{
CsprojInfo pi = new CsprojInfo (m_bIsUnix, m_bIsMcs, projectName, projectGuid, csprojPath);
projNameInfo[projectName] = pi;
projGuidInfo[projectGuid] = pi;
}
}
if (s.StartsWith("Global"))
{
break;
}
}
}
public string MsSlnHelper(bool isUnixMode, bool isMcsMode, bool isSln, string slnFile)
{
bool noCommonTargets = false;
bool noProjectTargets = false;
bool noFlags = false;
StringBuilder MakefileBuilder = new StringBuilder();
m_bIsUnix = isUnixMode;
m_bIsMcs = isMcsMode;
if(m_bIsUnix == true && m_bIsMcs == true)
{
m_bIsUsingLib = true;
}
if (m_bIsUnix)
{
slash = "/";
}
else
{
slash = "\\";
}
try
{
string d = Path.GetDirectoryName(slnFile);
if (d != "")
Directory.SetCurrentDirectory(d);
if (isSln == true)
{
// Get the sln file version
m_strSlnVer = GetSlnFileVersion(slnFile);
// We invoke the ParseSolution
// by passing the file obtained
ParseSolution (slnFile);
}
else
{
// Get the Csproj version
m_strCsprojVer = GetCsprojFileVersion(slnFile);
// We invoke the ParseMsCsProj
// by passing the file obtained
ParseMsCsProj (slnFile);
}
System.Reflection.Assembly curAssam = System.Reflection.Assembly.GetExecutingAssembly();
MakefileBuilder.AppendFormat("# Makefile created with Prj2MakeSharpWin32 ver. {0}\n# on {1}\n\n",
curAssam.GetName().Version.ToString(),
System.DateTime.Now.ToUniversalTime().ToString()
);
if (!noFlags)
{
if (m_bIsUnix) // gmake
{
MakefileBuilder.Append("ifndef TARGET\n");
MakefileBuilder.Append("\tTARGET=./bin/Debug\n");
MakefileBuilder.Append("else\n");
MakefileBuilder.Append("\tTARGET=./bin/$(TARGET)\n");
MakefileBuilder.Append("endif\n\n");
if (this.m_bIsMcs == false)
{
MakefileBuilder.Append("MCS=csc\n");
MakefileBuilder.Append("MCSFLAGS=-nologo\n\n");
MakefileBuilder.Append("ifdef (RELEASE)\n");
MakefileBuilder.Append("\tMCSFLAGS=$(MCSFLAGS) -optimize+ -d:TRACE\n");
MakefileBuilder.Append("else\n");
MakefileBuilder.Append("\tMCSFLAGS=$(MCSFLAGS) -debug+ -d:TRACE,DEBUG\n");
MakefileBuilder.Append("endif\n");
}
else
{
MakefileBuilder.Append("MCS=mcs\n");
MakefileBuilder.Append("ifndef (RELEASE)\n");
MakefileBuilder.Append("\tMCSFLAGS=-debug --stacktrace\n");
MakefileBuilder.Append("endif\n");
// Define and add the information used in the -lib: arguments passed to the
// compiler to assist in finding non-fullyqualified assembly references.
if(m_bIsMcs == true)
{
MakefileBuilder.AppendFormat("LIBS=-lib:{0}/mono/1.0 -lib:{1}/mono/gtk-sharp\n\n",
"`pkg-config --variable=libdir mono`",
"`pkg-config --variable=libdir gtk-sharp`"
);
}
}
}
else // nmake
{
MakefileBuilder.Append("!if !defined (TARGET)\n");
MakefileBuilder.Append("TARGET=.\\bin\\Debug\n");
MakefileBuilder.Append("!else\n");
MakefileBuilder.Append("TARGET=.\\bin\\$(TARGET)\n");
MakefileBuilder.Append("!endif\n\n");
if (m_bIsMcs == false)
{
MakefileBuilder.Append("MCS=csc\n");
MakefileBuilder.Append("MCSFLAGS=-nologo\n\n");
MakefileBuilder.Append("!if !defined(RELEASE)\n");
MakefileBuilder.Append("MCSFLAGS=$(MCSFLAGS) -optimize+ -d:TRACE\n");
MakefileBuilder.Append("!else\n");
MakefileBuilder.Append("MCSFLAGS=$(MCSFLAGS) -debug+ -d:TRACE,DEBUG\n");
MakefileBuilder.Append("!endif\n");
}
else
{
MakefileBuilder.Append("MCS=mcs\n");
MakefileBuilder.Append("!if !defined(RELEASE)\n");
MakefileBuilder.Append("MCSFLAGS=-debug --stacktrace\n");
MakefileBuilder.Append("!endif\n");
}
}
MakefileBuilder.Append("\n");
}
else
{
MakefileBuilder.Append("!if !defined(MCS)\n");
MakefileBuilder.Append("!error You must provide MCS when making\n");
MakefileBuilder.Append("!endif\n\n");
}
foreach (CsprojInfo pi in projNameInfo.Values)
{
MakefileBuilder.AppendFormat("{0}=$(TARGET){1}{2}\n", pi.makename_ext, slash, pi.assembly_name);
MakefileBuilder.AppendFormat("{0}_PDB=$(TARGET){1}{2}\n", pi.makename, slash, pi.assembly_name.Replace(".dll",".pdb"));
MakefileBuilder.AppendFormat("{0}_SRC={1}\n", pi.makename, pi.src);
MakefileBuilder.AppendFormat("{0}_RES={1}\n\n", pi.makename, pi.res);
}
foreach (CsprojInfo pi in projNameInfo.Values)
{
string refs = "";
string deps = "";
foreach (Mfconsulting.General.Prj2Make.Schema.Csproj.Reference rf in pi.Proyecto.CSHARP.Build.References)
{
if(rf.Package == null || rf.Package.CompareTo("") == 0)
{
// Add space in between references as
// it becomes necessary
if (refs != "")
refs += " ";
string assemblyName = rf.AssemblyName;
// HACK - under Unix filenames are case sensitive
// Under Windows there's no agreement on Xml vs XML ;-)
if (0 == String.Compare(assemblyName, "System.Xml", true))
{
assemblyName = "System.Xml";
}
refs += "-r:" + assemblyName + ".dll";
}
else
{
try
{
CsprojInfo pi2 = (CsprojInfo)projGuidInfo[rf.Project];
if (refs != "")
refs += " ";
if (deps != "")
deps += " ";
refs += "-r:$(" + pi2.makename_ext + ")";
deps += "$(" + pi2.makename_ext + ")";
}
catch(System.NullReferenceException)
{
refs += String.Format("-r:{0}.dll", rf.Name);
deps += String.Format("# Missing dependency project {1} ID:{0}?", rf.Project,
rf.Name);
Console.WriteLine(String.Format(
"Warning: The project {0}, ID: {1} may be required and appears missing.",
rf.Name, rf.Project)
);
}
}
}
MakefileBuilder.AppendFormat("$({0}): $({1}_SRC) {2}\n", pi.makename_ext, pi.makename, deps);
if (isUnixMode)
{
MakefileBuilder.Append("\t-mkdir -p $(TARGET)\n");
}
else
{
MakefileBuilder.Append("\t-md $(TARGET)\n");
}
MakefileBuilder.Append("\t$(MCS) $(MCSFLAGS)");
// Test to see if any configuratino has the Allow unsafe blocks on
if(pi.AllowUnsafeCode == true ) {
MakefileBuilder.Append(" -unsafe");
}
// Test for LIBS usage
if(m_bIsUsingLib == true) {
MakefileBuilder.Append(" $(LIBS)");
}
MakefileBuilder.AppendFormat(" {2}{3} -out:$({0}) $({1}_RES) $({1}_SRC)\n",
pi.makename_ext, pi.makename, refs, pi.switches);
MakefileBuilder.Append("\n");
}
if (!noCommonTargets)
{
MakefileBuilder.Append("\n");
MakefileBuilder.Append("# common targets\n\n");
MakefileBuilder.Append("all:\t");
bool first = true;
foreach (CsprojInfo pi in projNameInfo.Values)
{
if (!first)
{
MakefileBuilder.Append(" \\\n\t");
}
MakefileBuilder.AppendFormat("$({0})", pi.makename_ext);
first = false;
}
MakefileBuilder.Append("\n\n");
MakefileBuilder.Append("clean:\n");
foreach (CsprojInfo pi in projNameInfo.Values)
{
if (isUnixMode)
{
MakefileBuilder.AppendFormat("\t-rm -f \"$({0})\" 2> /dev/null\n", pi.makename_ext);
MakefileBuilder.AppendFormat("\t-rm -f \"$({0}_PDB)\" 2> /dev/null\n", pi.makename);
}
else
{
MakefileBuilder.AppendFormat("\t-del \"$({0})\" 2> nul\n", pi.makename_ext);
MakefileBuilder.AppendFormat("\t-del \"$({0}_PDB)\" 2> nul\n", pi.makename);
}
}
MakefileBuilder.Append("\n");
}
if (!noProjectTargets)
{
MakefileBuilder.Append("\n");
MakefileBuilder.Append("# project names as targets\n\n");
foreach (CsprojInfo pi in projNameInfo.Values)
{
MakefileBuilder.AppendFormat("{0}: $({1})\n", pi.name, pi.makename_ext);
}
}
return MakefileBuilder.ToString();
}
catch (Exception e)
{
Console.WriteLine("EXCEPTION: {0}\n", e);
return "";
}
}
public void CreatePrjxFromCsproj(string csprojFileName)
{
int nCnt = 0;
FileStream fsIn = null;
XmlSerializer xmlDeSer = null;
FileStream fsOut = null;
XmlSerializer xmlSer = null;
Mfconsulting.General.Prj2Make.Schema.Csproj.VisualStudioProject csprojObj = null;
Mfconsulting.General.Prj2Make.Schema.Prjx.Project prjxObj = new Mfconsulting.General.Prj2Make.Schema.Prjx.Project();
string PrjxFileName = String.Format ("{0}.prjx",
Path.Combine(Path.GetDirectoryName(csprojFileName),
Path.GetFileNameWithoutExtension(csprojFileName))
);
// convert backslashes to slashes
csprojFileName = csprojFileName.Replace("\\", "/");
Console.WriteLine(String.Format("Will create project filename:{0}", PrjxFileName));
// Load the csproj
fsIn = new FileStream (csprojFileName, FileMode.Open);
xmlDeSer = new XmlSerializer (typeof(VisualStudioProject));
csprojObj = (VisualStudioProject) xmlDeSer.Deserialize (fsIn);
fsIn.Close();
// Begin prjxObj population
prjxObj.name = Path.GetFileNameWithoutExtension(csprojFileName);
prjxObj.description = "";
prjxObj.newfilesearch = "None";
prjxObj.enableviewstate = "True";
prjxObj.version = (decimal)1.1;
prjxObj.projecttype = "C#";
prjxObj.Contents = GetContents (csprojObj.CSHARP.Files.Include);
prjxObj.References = GetReferences(csprojObj.CSHARP.Build.References);
prjxObj.DeploymentInformation = new Mfconsulting.General.Prj2Make.Schema.Prjx.DeploymentInformation();
prjxObj.DeploymentInformation.target = "";
prjxObj.DeploymentInformation.script = "";
prjxObj.DeploymentInformation.strategy = "File";
nCnt = csprojObj.CSHARP.Build.Settings.Config.Length;
prjxObj.Configurations = new Configurations();
prjxObj.Configurations.Configuration = new Configuration[nCnt];
for(int i = 0; i < nCnt; i++)
{
prjxObj.Configurations.Configuration[i] = CreateConfigurationBlock(
csprojObj.CSHARP.Build.Settings.Config[i],
csprojObj.CSHARP.Build.Settings.AssemblyName,
csprojObj.CSHARP.Build.Settings.OutputType
);
}
prjxObj.Configurations.active = prjxObj.Configurations.Configuration[0].name;
prjxObj.Configuration = prjxObj.Configurations.Configuration[0];
// Serialize
fsOut = new FileStream (PrjxFileName, FileMode.Create);
xmlSer = new XmlSerializer (typeof(Project));
xmlSer.Serialize(fsOut, prjxObj);
fsOut.Close();
return;
}
public void MsSlnToCmbxHelper(string slnFileName)
{
int i = 0;
FileStream fsOut = null;
XmlSerializer xmlSer = null;
StringBuilder MakefileBuilder = new StringBuilder();
Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine cmbxObj = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine();
string cmbxFileName = String.Format ("{0}.cmbx",
Path.Combine(Path.GetDirectoryName(slnFileName),
Path.GetFileNameWithoutExtension(slnFileName))
);
Console.WriteLine(String.Format("Will create combine filename:{0}", cmbxFileName));
try
{
string d = Path.GetDirectoryName(slnFileName);
if (d != "")
Directory.SetCurrentDirectory(d);
// We invoke the ParseSolution
// by passing the file obtained
ParseSolution (slnFileName);
// Create all of the prjx files form the csproj files
foreach (CsprojInfo pi in projNameInfo.Values)
{
CreatePrjxFromCsproj(pi.csprojpath);
}
// Begin prjxObj population
cmbxObj.name = Path.GetFileNameWithoutExtension(slnFileName);
cmbxObj.description = "";
cmbxObj.fileversion = (decimal)1.0;
// Create and attach the StartMode element
Mfconsulting.General.Prj2Make.Schema.Cmbx.StartMode startModeElem = new Mfconsulting.General.Prj2Make.Schema.Cmbx.StartMode();
// Create the array of Execute objects
Mfconsulting.General.Prj2Make.Schema.Cmbx.Execute[] executeElem = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Execute[projNameInfo.Count];
// Populate the Element objects instances
i = 0;
foreach (CsprojInfo pi in projNameInfo.Values)
{
Mfconsulting.General.Prj2Make.Schema.Cmbx.Execute execElem = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Execute();
execElem.entry = pi.name;
execElem.type = "None";
executeElem[i++] = execElem;
}
startModeElem.startupentry = executeElem[0].entry;
startModeElem.single = "True";
startModeElem.Execute = executeElem;
// Attach the StartMode Object to the
// Combine object
cmbxObj.StartMode = startModeElem;
// Gnerate the entries array
Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry[] entriesObj = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry[projNameInfo.Count];
// Populate the Entry objects instances
i = 0;
foreach (CsprojInfo pi in projNameInfo.Values)
{
Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry entryObj = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry();
string PrjxFileName = String.Format (".{0}{1}.prjx",
Path.DirectorySeparatorChar,
Path.Combine(Path.GetDirectoryName(pi.csprojpath),
Path.GetFileNameWithoutExtension(pi.csprojpath))
);
entryObj.filename = PrjxFileName;
entriesObj[i++] = entryObj;
}
// Attach the Entries Object to the
// Combine object
cmbxObj.Entries = entriesObj;
Mfconsulting.General.Prj2Make.Schema.Cmbx.Configurations configurationsObj = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Configurations();
// Hack hardcoded configuration value must get the one
// from analyzing the different configuration entries
configurationsObj.active = "Debug";
// Hack hardcoded number of configuration object
// assuming 2 for Debug and Release
configurationsObj.Configuration = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Configuration[2];
Mfconsulting.General.Prj2Make.Schema.Cmbx.Configuration confObj1 = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Configuration();
configurationsObj.Configuration[0] = confObj1;
Mfconsulting.General.Prj2Make.Schema.Cmbx.Configuration confObj2 = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Configuration();
configurationsObj.Configuration[1] = confObj2;
configurationsObj.Configuration[0].name = "Release";
configurationsObj.Configuration[0].Entry = CreateArrayOfConfEntries();
configurationsObj.Configuration[1].name = "Debug";
configurationsObj.Configuration[1].Entry = CreateArrayOfConfEntries();
// Attach the Configurations object to the
// Combine Object
cmbxObj.Configurations = configurationsObj;
// Serialize
fsOut = new FileStream (cmbxFileName, FileMode.Create);
xmlSer = new XmlSerializer (typeof(Mfconsulting.General.Prj2Make.Schema.Cmbx.Combine));
xmlSer.Serialize(fsOut, cmbxObj);
fsOut.Close();
return;
}
catch (Exception e)
{
Console.WriteLine("EXCEPTION: {0}\n", e);
return;
}
}
protected Mfconsulting.General.Prj2Make.Schema.Prjx.Reference[] GetReferences(Mfconsulting.General.Prj2Make.Schema.Csproj.Reference[] References)
{
Mfconsulting.General.Prj2Make.Schema.Prjx.Reference[] theReferences = null;
int i = 0;
// Get the GAC path
string strBasePathMono1_0 = Path.Combine(
Mfconsulting.General.PkgConfigInvoker.GetPkgVariableValue("mono", "libdir").TrimEnd(),
"mono/1.0");
string strBasePathGtkSharp = Path.Combine(
Mfconsulting.General.PkgConfigInvoker.GetPkgVariableValue("mono", "libdir").TrimEnd(),
"mono/gtk-sharp");
// Little Diagnostics -- remove later
Console.WriteLine ("Base path: {0}", strBasePathMono1_0);
Console.WriteLine ("Base path: {0}", strBasePathGtkSharp);
if(References != null && References.Length > 0)
{
theReferences = new Mfconsulting.General.Prj2Make.Schema.Prjx.Reference[References.Length];
}
else
{
return null;
}
// Iterate through the reference collection of the csproj file
foreach(Mfconsulting.General.Prj2Make.Schema.Csproj.Reference rf in References)
{
Mfconsulting.General.Prj2Make.Schema.Prjx.Reference rfOut = new Mfconsulting.General.Prj2Make.Schema.Prjx.Reference();
string strRefFileName;
if(rf.Package == null || rf.Package.CompareTo("") == 0)
{
bool bIsWhereExpected = false;
// HACK - under Unix filenames are case sensitive
// Under Windows there's no agreement on Xml vs XML ;-)
if(Path.GetFileName(rf.HintPath).CompareTo("System.XML.dll") == 0)
{
strRefFileName = Path.Combine (strBasePathMono1_0, Path.GetFileName("System.Xml.dll"));
// Test to see if file exist in GAC location
if(System.IO.File.Exists(strRefFileName) == true) {
try {
rfOut.refto = System.Reflection.Assembly.LoadFrom(strRefFileName).FullName;
rfOut.type = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceType.Gac;
rfOut.localcopy = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceLocalcopy.True;
bIsWhereExpected = true;
} catch (Exception exc) {
Console.WriteLine ("Error doing Assembly.LoadFrom with File: {0}\nErr Msg: {1}",
strRefFileName,
exc.Message );
}
}
} else {
strRefFileName = Path.Combine (strBasePathMono1_0, Path.GetFileName(rf.HintPath));
// Little Diagnostics -- remove later
Console.WriteLine ("Reference that will be tested for existance: {0}", strRefFileName); // Test to see if file exist in GAC location
// Test to see if file exist in GAC location
if(System.IO.File.Exists(strRefFileName) == true) {
try {
rfOut.refto = System.Reflection.Assembly.LoadFrom(strRefFileName).FullName;
rfOut.type = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceType.Gac;
rfOut.localcopy = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceLocalcopy.True;
bIsWhereExpected = true;
} catch (Exception exc) {
Console.WriteLine ("Error doing Assembly.LoadFrom with File: {0}\nErr Msg: {1}",
strRefFileName,
exc.Message );
}
}
strRefFileName = Path.Combine (strBasePathGtkSharp, Path.GetFileName(rf.HintPath));
// Little Diagnostics -- remove later
Console.WriteLine ("Reference that will be tested for existance: {0}", strRefFileName); // Test to see if file exist in GAC location
// Test to see if file exist in GAC location
if(System.IO.File.Exists(strRefFileName) == true) {
try {
rfOut.refto = System.Reflection.Assembly.LoadFrom(strRefFileName).FullName;
rfOut.type = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceType.Gac;
rfOut.localcopy = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceLocalcopy.True;
bIsWhereExpected = true;
} catch (Exception exc) {
Console.WriteLine ("Error doing Assembly.LoadFrom with File: {0}\nErr Msg: {1}",
strRefFileName,
exc.Message );
}
}
if(bIsWhereExpected == false)
{
rfOut.refto = Path.GetFileName(rf.HintPath);
rfOut.type = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceType.Gac;
rfOut.localcopy = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceLocalcopy.True;
}
}
// increment the iterator value
theReferences[i++] = rfOut;
}
else
{
rfOut.type = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceType.Project;
rfOut.refto = Path.GetFileName(rf.Name);
rfOut.localcopy = Mfconsulting.General.Prj2Make.Schema.Prjx.ReferenceLocalcopy.True;
// increment the iterator value
theReferences[i++] = rfOut;
}
}
return theReferences;
}
protected Mfconsulting.General.Prj2Make.Schema.Prjx.File[] GetContents(Mfconsulting.General.Prj2Make.Schema.Csproj.File[] Include)
{
Mfconsulting.General.Prj2Make.Schema.Prjx.File[] theFiles = null;
int i = 0;
if(Include != null && Include.Length > 0)
{
theFiles = new Mfconsulting.General.Prj2Make.Schema.Prjx.File[Include.Length];
}
else
{
return null;
}
// Iterate through the file collection of the csproj file
foreach(Mfconsulting.General.Prj2Make.Schema.Csproj.File fl in Include)
{
Mfconsulting.General.Prj2Make.Schema.Prjx.File flOut = new Mfconsulting.General.Prj2Make.Schema.Prjx.File();
flOut.name = String.Format(".{0}{1}", Path.DirectorySeparatorChar, fl.RelPath);
switch(fl.SubType)
{
case "Code":
flOut.subtype = Mfconsulting.General.Prj2Make.Schema.Prjx.FileSubtype.Code;
break;
}
switch(fl.BuildAction)
{
case Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.Compile:
flOut.buildaction = Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.Compile;
break;
case Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.Content:
flOut.buildaction = Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.Exclude;
break;
case Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.EmbeddedResource:
flOut.buildaction = Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.EmbedAsResource;
break;
case Mfconsulting.General.Prj2Make.Schema.Csproj.FileBuildAction.None:
flOut.buildaction = Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.Exclude;
break;
}
flOut.dependson = fl.DependentUpon;
flOut.data = "";
// increment the iterator value
theFiles[i++ ] = flOut;
}
return theFiles;
}
protected Configuration CreateConfigurationBlock(Config ConfigBlock, string AssemblyName, string OuputType)
{
Configuration ConfObj = new Configuration();
CodeGeneration CodeGenObj = new CodeGeneration();
Execution ExecutionObj = new Execution();
Output OutputObj = new Output();
ConfObj.runwithwarnings = "False";
ConfObj.name = ConfigBlock.Name;
// CodeGenObj member population
CodeGenObj.runtime = "MsNet";
CodeGenObj.compiler = "Csc";
CodeGenObj.warninglevel = ConfigBlock.WarningLevel;
CodeGenObj.nowarn = "";
CodeGenObj.includedebuginformation = (ConfigBlock.DebugSymbols == true) ?
CodeGenerationIncludedebuginformation.True :
CodeGenerationIncludedebuginformation.False;
CodeGenObj.optimize = (ConfigBlock.Optimize == true) ? "True" : "False";
if (ConfigBlock.AllowUnsafeBlocks == true)
{
CodeGenObj.unsafecodeallowed = CodeGenerationUnsafecodeallowed.True;
}
else
{
CodeGenObj.unsafecodeallowed = CodeGenerationUnsafecodeallowed.False;
}
if (ConfigBlock.CheckForOverflowUnderflow == true)
{
CodeGenObj.generateoverflowchecks = "True";
}
else
{
CodeGenObj.generateoverflowchecks = "False";
}
CodeGenObj.mainclass = "";
CodeGenObj.target = OuputType;
CodeGenObj.generatexmldocumentation = "False";
CodeGenObj.win32Icon = "";
// ExecutionObj member population
ExecutionObj.commandlineparameters = "";
ExecutionObj.consolepause = "True";
// OutputObj member population
OutputObj.directory = ConfigBlock.OutputPath;
OutputObj.assembly = AssemblyName;
OutputObj.executeScript = "";
OutputObj.executeBeforeBuild = "";
OutputObj.executeAfterBuild = "";
ConfObj.CodeGeneration = CodeGenObj;
ConfObj.Execution = ExecutionObj;
ConfObj.Output = OutputObj;
return ConfObj;
}
protected Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry[] CreateArrayOfConfEntries()
{
Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry[] confEntry = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry[projNameInfo.Count];
// Populate the Entry objects instances
int i = 0;
foreach (CsprojInfo pi in projNameInfo.Values)
{
Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry entryObj = new Mfconsulting.General.Prj2Make.Schema.Cmbx.Entry();
entryObj.name = pi.name;
entryObj.configurationname = "Debug";
entryObj.build = "False";
confEntry[i++] = entryObj;
}
return confEntry;
}
}
}

Просмотреть файл

@ -0,0 +1,92 @@
// Copyright (c) 2004 Francisco T. Martinez <paco@mfcon.com>
// All rights reserved.
//
using System;
using System.Xml;
using System.Xml.Serialization;
using System.Collections;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using Mfconsulting.General.Prj2Make.Schema.Prjx;
using Mfconsulting.General.Prj2Make.Schema.Csproj;
namespace Mfconsulting.General.Prj2Make
{
public class Maker
{
public enum TypeOfFile {
unknown,
sln,
csproj,
cmbx,
prjx
}
// Helper function to determine the type of
// file being parsed based on its extension
protected TypeOfFile DetermineFileType(string inFileName)
{
string ExtentionString = System.IO.Path.GetExtension (inFileName);
switch(ExtentionString)
{
case ".sln":
return TypeOfFile.sln;
case ".csproj":
return TypeOfFile.csproj;
case ".cmbx":
return TypeOfFile.cmbx;
case ".prjx":
return TypeOfFile.prjx;
}
return TypeOfFile.unknown;
}
public bool CreateCombineFromSln(string slnFileName)
{
SlnMaker slnMkObj = new SlnMaker();
// Load the sln and parse it
slnMkObj.MsSlnToCmbxHelper(slnFileName);
return false;
}
public bool CreatePrjxFromCsproj(string csprojFileName)
{
SlnMaker slnMkObj = new SlnMaker();
// Load the csproj and parse it
slnMkObj.CreatePrjxFromCsproj(csprojFileName);
return false;
}
// Main entry point for Makefile generation
public string MakerMain(bool isUnixMode, bool isMcsMode, string slnFile)
{
SlnMaker mk1Obj = null;
CmbxMaker mk2Obj = null;
// Test to see what kind if file we got
// sln, csproj, cmbx, prjx
switch(DetermineFileType(slnFile))
{
case TypeOfFile.sln:
mk1Obj = new SlnMaker();
return mk1Obj.MsSlnHelper (isUnixMode, isMcsMode, true, slnFile);
case TypeOfFile.csproj:
mk1Obj = new SlnMaker();
return mk1Obj.MsSlnHelper (isUnixMode, isMcsMode, false, slnFile);
case TypeOfFile.cmbx:
mk2Obj = new CmbxMaker();
return mk2Obj.MdCmbxHelper (isUnixMode, isMcsMode, true, slnFile);
case TypeOfFile.prjx:
mk2Obj = new CmbxMaker();
return mk2Obj.MdCmbxHelper (isUnixMode, isMcsMode, false, slnFile);
}
return "Error: unknown file type.";
}
}
}

Просмотреть файл

@ -0,0 +1,197 @@
// Copyright (c) 2004 Francisco T. Martinez <paco@mfcon.com>
// All rights reserved.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Library General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
using System;
using System.Collections;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.Serialization;
namespace Mfconsulting.General.Prj2Make
{
class PrjxInfo
{
public readonly string name;
public readonly string csprojpath;
public string makename;
public string makename_ext;
public string assembly_name;
public string res;
public string src;
private bool m_bAllowUnsafeCode;
private Mfconsulting.General.Prj2Make.Schema.Prjx.Project m_projObject;
public string ext_refs = "";
public string switches = "";
public bool AllowUnsafeCode
{
get { return m_bAllowUnsafeCode; }
}
public Mfconsulting.General.Prj2Make.Schema.Prjx.Project Proyecto {
get { return m_projObject; }
}
// Project desirialization
protected Mfconsulting.General.Prj2Make.Schema.Prjx.Project LoadPrjFromFile (string strIn)
{
FileStream fs = new FileStream (strIn, FileMode.Open);
XmlSerializer xmlSer = new XmlSerializer (typeof(Mfconsulting.General.Prj2Make.Schema.Prjx.Project));
Mfconsulting.General.Prj2Make.Schema.Prjx.Project prjObj = (Mfconsulting.General.Prj2Make.Schema.Prjx.Project) xmlSer.Deserialize (fs);
fs.Close();
return (prjObj);
}
public PrjxInfo(bool isUnixMode, bool isMcsMode, string csprojpath)
{
Mfconsulting.General.Prj2Make.Schema.Prjx.Configuration activeConf = null;
this.csprojpath = csprojpath;
m_bAllowUnsafeCode = false;
// convert backslashes to slashes
csprojpath = csprojpath.Replace("\\", "/");
// loads the file in order to deserialize and
// build the object graph
try {
m_projObject = LoadPrjFromFile (csprojpath);
} catch (Exception exc) {
Console.WriteLine (
String.Format ("Could not load the file {0}\nException: {1}",
csprojpath,
exc.Message)
);
return;
}
this.name = m_projObject.name;
makename = name.Replace('.','_').ToUpper();
makename_ext = makename + "_EXT";
// Get the configuration to be used and
// copy it to a local configuration object
foreach(Mfconsulting.General.Prj2Make.Schema.Prjx.Configuration cnfObj in m_projObject.Configurations.Configuration)
{
if(cnfObj.name.CompareTo(m_projObject.Configurations.active) == 0)
{
// Assign the active configuration
activeConf = cnfObj;
break;
}
}
// Establish if the allow unsafe code flag is true
if(activeConf.CodeGeneration.unsafecodeallowed == Mfconsulting.General.Prj2Make.Schema.Prjx.CodeGenerationUnsafecodeallowed.True)
{
m_bAllowUnsafeCode = true;
}
switch (activeConf.CodeGeneration.target)
{
case "Library":
makename_ext = makename + "_DLL";
assembly_name = activeConf.Output.assembly + ".dll";
switches += " -target:library";
break;
case "Exe":
makename_ext = makename + "_EXE";
assembly_name = activeConf.Output.assembly + ".exe";
switches += " -target:exe";
break;
case "WinExe":
makename_ext = makename + "_EXE";
assembly_name = activeConf.Output.assembly + ".exe";
switches += " -target:winexe";
break;
default:
throw new NotSupportedException("Unsupported OutputType: " + activeConf.CodeGeneration.target);
}
src = "";
string basePath = Path.GetDirectoryName(csprojpath);
string s;
// Process Source code files for compiling
foreach (Mfconsulting.General.Prj2Make.Schema.Prjx.File f in m_projObject.Contents)
{
if(f.buildaction == Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.Compile)
{
if (src != "") {
src += " \\\n\t";
}
s = System.IO.Path.Combine(basePath, f.name);
s = s.Replace("\\", "/");
if (CmbxMaker.slash != "/")
s = s.Replace("/", CmbxMaker.slash);
// Test for spaces
if (isUnixMode == false)
{
// We are in win32 using a cmd.exe or other
// DOS shell
if(s.IndexOf(' ') > -1) {
src += String.Format("\"{0}\"", s);
} else {
src += s;
}
} else {
// We are in *NIX or some other
// GNU like shell
src += s.Replace(" ", "\\ ");
}
}
}
// Process resources for embedding
res = "";
string rootNS = this.name;
string relPath;
foreach (Mfconsulting.General.Prj2Make.Schema.Prjx.File f in m_projObject.Contents)
{
if(f.buildaction == Mfconsulting.General.Prj2Make.Schema.Prjx.FileBuildaction.EmbedAsResource)
{
if (src != "") {
src += " \\\n\t";
}
relPath = f.name.Replace("\\", "/");
s = System.IO.Path.Combine(basePath, relPath);
s = String.Format(" -resource:{0},{1}", s, System.IO.Path.GetFileName(relPath));
s = s.Replace("\\", "/");
if (CmbxMaker.slash != "/")
s = s.Replace("/", CmbxMaker.slash);
res += s;
}
}
}
}
}

Просмотреть файл

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="AppDesignerFolder" type="xs:string"/>
<xs:element name="AssemblyName" type="xs:string"/>
<xs:element name="AutoGen" type="xs:string"/>
<xs:element name="Compile">
<xs:complexType>
<xs:sequence>
<xs:element ref="SubType" minOccurs="0"/>
<xs:element ref="AutoGen" minOccurs="0"/>
<xs:element ref="DependentUpon" minOccurs="0"/>
<xs:element ref="DesignTimeSharedInput" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Include" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Configuration">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Condition" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="DebugSymbols" type="xs:boolean"/>
<xs:element name="DebugType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="full"/>
<xs:enumeration value="pdbonly"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="DefineConstants" type="xs:string" />
<xs:element name="DependentUpon" type="xs:string" />
<xs:element name="DesignTimeSharedInput" type="xs:string"/>
<xs:element name="EmbeddedResource">
<xs:complexType>
<xs:sequence>
<xs:element ref="Generator" minOccurs="0"/>
<xs:element ref="LastGenOutput" minOccurs="0"/>
<xs:element ref="SubType"/>
<xs:element ref="DependentUpon" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Include" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="ErrorReport" type="xs:string"/>
<xs:element name="Generator">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ResXFileCodeGenerator"/>
<xs:enumeration value="SettingsSingleFileGenerator"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Import">
<xs:complexType>
<xs:attribute name="Project" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="ItemGroup">
<xs:complexType>
<xs:choice maxOccurs="unbounded">
<xs:element ref="Reference"/>
<xs:element ref="Compile"/>
<xs:element ref="EmbeddedResource"/>
<xs:element ref="None"/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="LastGenOutput">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Resources.Designer.cs"/>
<xs:enumeration value="Settings.Designer.cs"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="None">
<xs:complexType>
<xs:sequence>
<xs:element ref="Generator"/>
<xs:element ref="LastGenOutput"/>
</xs:sequence>
<xs:attribute name="Include" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="AllowUnsafeBlocks" type="xs:boolean" />
<xs:element name="Optimize" type="xs:boolean" />
<xs:element name="OutputPath">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="bin\Debug\"/>
<xs:enumeration value="bin\Release\"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="OutputType" type="xs:string"/>
<xs:element name="Platform">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Condition" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="ProductVersion" type="xs:string"/>
<xs:element name="Project">
<xs:complexType>
<xs:sequence>
<xs:element ref="PropertyGroup" maxOccurs="unbounded"/>
<xs:element ref="ItemGroup" maxOccurs="unbounded"/>
<xs:element ref="Import"/>
</xs:sequence>
<xs:attribute name="DefaultTargets" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="ProjectGuid" type="xs:string"/>
<xs:element name="PropertyGroup">
<xs:complexType>
<xs:sequence>
<xs:element ref="Configuration" minOccurs="0"/>
<xs:element ref="Platform" minOccurs="0"/>
<xs:element ref="ProductVersion" minOccurs="0"/>
<xs:element ref="SchemaVersion" minOccurs="0"/>
<xs:element ref="ProjectGuid" minOccurs="0"/>
<xs:element ref="OutputType" minOccurs="0"/>
<xs:element ref="AppDesignerFolder" minOccurs="0"/>
<xs:element ref="RootNamespace" minOccurs="0"/>
<xs:element ref="AssemblyName" minOccurs="0"/>
<xs:element ref="DebugSymbols" minOccurs="0"/>
<xs:element ref="DebugType" minOccurs="0"/>
<xs:element ref="Optimize" minOccurs="0"/>
<xs:element ref="AllowUnsafeBlocks" minOccurs="0" />
<xs:element ref="OutputPath" minOccurs="0"/>
<xs:element ref="DefineConstants" minOccurs="0"/>
<xs:element ref="ErrorReport" minOccurs="0"/>
<xs:element ref="WarningLevel" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="Condition" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="Reference">
<xs:complexType>
<xs:attribute name="Include" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="RootNamespace" type="xs:string"/>
<xs:element name="SchemaVersion" type="xs:decimal"/>
<xs:element name="SubType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Designer"/>
<xs:enumeration value="Form"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="WarningLevel" type="xs:byte"/>
</xs:schema>

Просмотреть файл

@ -0,0 +1,282 @@
namespace Mfconsulting.General.Prj2Make.Schema.Csproj {
using System.Xml.Serialization;
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Build {
/// <remarks/>
public Settings Settings;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
public Reference[] References;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Settings {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Config")]
public Config[] Config;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string ApplicationIcon;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string AssemblyKeyContainerName;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string AssemblyName;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string AssemblyOriginatorKeyFile;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string DefaultClientScript;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string DefaultHTMLPageLayout;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string DefaultTargetSchema;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool DelaySign;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string OutputType;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string PreBuildEvent;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string PostBuildEvent;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string RootNamespace;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string RunPostBuildEvent;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string StartupObject;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Config {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Name;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool AllowUnsafeBlocks;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public int BaseAddress;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool CheckForOverflowUnderflow;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string ConfigurationOverrideFile;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string DefineConstants;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string DocumentationFile;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool DebugSymbols;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public short FileAlignment;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool IncrementalBuild;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool NoStdLib;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string NoWarn;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool Optimize;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string OutputPath;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool RegisterForComInterop;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool RemoveIntegerChecks;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public bool TreatWarningsAsErrors;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public System.SByte WarningLevel;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Reference {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Name;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string AssemblyName;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string HintPath;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Project;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Package;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class CSHARP {
/// <remarks/>
public Build Build;
/// <remarks/>
public Files Files;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string ProjectType;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string ProductVersion;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public System.Decimal SchemaVersion;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string ProjectGuid;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Files {
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
public File[] Include;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class File {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string RelPath;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public FileBuildAction BuildAction;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string SubType;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string DependentUpon;
}
/// <remarks/>
public enum FileBuildAction {
/// <remarks/>
Compile,
/// <remarks/>
Content,
/// <remarks/>
EmbeddedResource,
/// <remarks/>
None,
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Include {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("File")]
public File[] File;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class References {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Reference")]
public Reference[] Reference;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class VisualStudioProject {
/// <remarks/>
public CSHARP CSHARP;
}
}

Просмотреть файл

@ -0,0 +1,300 @@
namespace Mfconsulting.General.Prj2Make.Schema.Csproj2005
{
using System.Xml.Serialization;
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Compile {
/// <remarks/>
public SubType SubType;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool SubTypeSpecified;
/// <remarks/>
public string AutoGen;
/// <remarks/>
public string DependentUpon;
/// <remarks/>
public string DesignTimeSharedInput;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Include;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public enum SubType {
/// <remarks/>
Designer,
/// <remarks/>
Form,
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Configuration {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Condition;
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()]
public string Value;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public enum DebugType {
/// <remarks/>
full,
/// <remarks/>
pdbonly,
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class EmbeddedResource {
/// <remarks/>
public Generator Generator;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool GeneratorSpecified;
/// <remarks/>
public LastGenOutput LastGenOutput;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool LastGenOutputSpecified;
/// <remarks/>
public SubType SubType;
/// <remarks/>
public string DependentUpon;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Include;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public enum Generator {
/// <remarks/>
ResXFileCodeGenerator,
/// <remarks/>
SettingsSingleFileGenerator,
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public enum LastGenOutput {
/// <remarks/>
[System.Xml.Serialization.XmlEnumAttribute("Resources.Designer.cs")]
ResourcesDesignercs,
/// <remarks/>
[System.Xml.Serialization.XmlEnumAttribute("Settings.Designer.cs")]
SettingsDesignercs,
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Import {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Project;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class ItemGroup {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("None", typeof(None))]
[System.Xml.Serialization.XmlElementAttribute("Compile", typeof(Compile))]
[System.Xml.Serialization.XmlElementAttribute("EmbeddedResource", typeof(EmbeddedResource))]
[System.Xml.Serialization.XmlElementAttribute("Reference", typeof(Reference))]
public object[] Items;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class None {
/// <remarks/>
public Generator Generator;
/// <remarks/>
public LastGenOutput LastGenOutput;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Include;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Reference {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Include;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public enum OutputPath {
/// <remarks/>
[System.Xml.Serialization.XmlEnumAttribute("bin\\Debug\\")]
binDebug,
/// <remarks/>
[System.Xml.Serialization.XmlEnumAttribute("bin\\Release\\")]
binRelease,
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Platform {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Condition;
/// <remarks/>
[System.Xml.Serialization.XmlTextAttribute()]
public string Value;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Project {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("PropertyGroup")]
public PropertyGroup[] PropertyGroup;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute(typeof(None), IsNullable=false)]
[System.Xml.Serialization.XmlArrayItemAttribute(typeof(Compile), IsNullable=false)]
[System.Xml.Serialization.XmlArrayItemAttribute(typeof(EmbeddedResource), IsNullable=false)]
[System.Xml.Serialization.XmlArrayItemAttribute(typeof(Reference), IsNullable=false)]
public object[][] ItemGroup;
/// <remarks/>
public Import Import;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string DefaultTargets;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class PropertyGroup {
/// <remarks/>
public Configuration Configuration;
/// <remarks/>
public Platform Platform;
/// <remarks/>
public string ProductVersion;
/// <remarks/>
public System.Decimal SchemaVersion;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool SchemaVersionSpecified;
/// <remarks/>
public string ProjectGuid;
/// <remarks/>
public string OutputType;
/// <remarks/>
public string AppDesignerFolder;
/// <remarks/>
public string RootNamespace;
/// <remarks/>
public string AssemblyName;
/// <remarks/>
public bool DebugSymbols;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool DebugSymbolsSpecified;
/// <remarks/>
public DebugType DebugType;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool DebugTypeSpecified;
/// <remarks/>
public bool Optimize;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool OptimizeSpecified;
/// <remarks/>
public bool AllowUnsafeBlocks;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool AllowUnsafeBlocksSpecified;
/// <remarks/>
public OutputPath OutputPath;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool OutputPathSpecified;
/// <remarks/>
public string DefineConstants;
/// <remarks/>
public string ErrorReport;
/// <remarks/>
public System.SByte WarningLevel;
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool WarningLevelSpecified;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Condition;
}
}

Просмотреть файл

@ -0,0 +1,38 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using Mono.GetOptions;
// Information about this assembly is defined by the following
// attributes.
//
// change them to the information which is associated with the assembly
// you compile.
[assembly: AssemblyTitle("prj2makesharpWin32")]
[assembly: AssemblyDescription("Generates make and nmake files from Visual Studio and MonoDevelop project files")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("MFConsulting")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("2004")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: Mono.About("MFConsulting, (c) 2004")]
[assembly: Mono.Author("Jaroslaw Kowalski")]
[assembly: Mono.Author("Paco Martinez")]
[assembly: Mono.UsageComplement("InputFile")]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all values by your own or you can build default build and revision
// numbers with the '*' character (the default):
[assembly: AssemblyVersion("0.95.1.0")]
// The following attributes specify the key for the sign of your assembly. See the
// .NET Framework documentation for more information about signing.
// This is not required, if you don't want signing let these attributes like they're.
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]

Просмотреть файл

@ -0,0 +1,31 @@
// project created on 3/13/04 at 5:22 a
using System;
namespace Mfconsulting.General.Prj2Make.Cui
{
class MainClass
{
public static void Main(string[] args)
{
// Handle command line arguments
MainOpts optObj = new MainOpts();
optObj.ProcessArgs(args);
if ( optObj.csproj2prjx == true && optObj.RemainingArguments.Length > 0)
{
new MainMod (optObj.RemainingArguments[0]);
return;
}
// Asuming residual arguments possibly a file path
if (optObj.RemainingArguments.Length > 0)
{
new MainMod (optObj.isNmake, optObj.isCsc, optObj.RemainingArguments[0]);
}
else // No arguments
{
optObj.DoHelp();
}
}
}
}

Просмотреть файл

@ -0,0 +1,128 @@
using System;
using System.IO;
using Mfconsulting.General.Prj2Make;
namespace Mfconsulting.General.Prj2Make.Cui
{
public class MainMod
{
public string m_AppName = "prj2make-sharp";
public string m_WorkspaceFileName;
public string m_FileNamePath;
public string m_OutputMakefile;
private bool m_IsUnix = false;
private bool m_IsMcs = true;
// Determines the make file type/style
public bool IsUnix
{
get { return m_IsUnix; }
set { m_IsUnix = value; }
}
// Determines what compiler to use MCS or CSC
public bool IsMcs
{
get { return m_IsMcs; }
set { m_IsMcs = value; }
}
protected void MyInitializeComponents()
{
}
public MainMod (string inputFileName)
{
Mfconsulting.General.Prj2Make.Maker mkObj = null;
MyInitializeComponents();
if (inputFileName == null || inputFileName.Length < 1)
{
Console.WriteLine ("No input file has been specified.");
return;
}
if (Path.GetExtension(inputFileName).ToUpper().CompareTo(".SLN") == 0)
{
mkObj = new Mfconsulting.General.Prj2Make.Maker();
mkObj.CreateCombineFromSln(inputFileName);
return;
}
if (Path.GetExtension(inputFileName).ToUpper().CompareTo(".CSPROJ") == 0)
{
mkObj = new Mfconsulting.General.Prj2Make.Maker();
mkObj.CreatePrjxFromCsproj(inputFileName);
return;
}
}
// For command line handling
public MainMod (bool isNmake, bool isCsc, string WorkspaceFile)
{
MyInitializeComponents();
this.IsMcs = (isCsc == true) ? false : true;
this.IsUnix = (isNmake == true) ? false : true;
IniFromCommandLine(WorkspaceFile);
}
protected void IniFromCommandLine(string WorkspaceFilename)
{
m_WorkspaceFileName = WorkspaceFilename;
m_FileNamePath = System.IO.Path.GetDirectoryName(m_WorkspaceFileName);
System.Text.StringBuilder strbFileName = new System.Text.StringBuilder();
strbFileName.AppendFormat("Makefile.{0}.{1}",
(this.IsMcs == true) ? "mcs" : "csc",
(this.IsUnix == true) ? "gmake" : "nmake"
);
m_OutputMakefile = System.IO.Path.Combine(m_FileNamePath, strbFileName.ToString());
// Actually follow through and genrate the contents of the Makefile
// to be placed on the textview
CreateMakefile();
}
protected void CreateMakefile()
{
Mfconsulting.General.Prj2Make.Maker mkObj = null;
string slnFile = null;
if (this.m_WorkspaceFileName.Length < 1) {
Console.WriteLine ("No input file has been specified.");
return;
}
else
slnFile = m_WorkspaceFileName;
mkObj = new Mfconsulting.General.Prj2Make.Maker();
SaveMakefileToDisk(mkObj.MakerMain(IsUnix, IsMcs, slnFile));
}
protected void SaveMakefileToDisk (string MakeFileContents)
{
FileStream fs = null;
StreamWriter w = null;
if (MakeFileContents.StartsWith ("Error") || MakeFileContents.StartsWith ("Notice")) {
Console.WriteLine(MakeFileContents);
return;
}
if (m_OutputMakefile != null && m_OutputMakefile.Length > 1) {
fs = new FileStream(m_OutputMakefile, FileMode.Create, FileAccess.Write);
w = new StreamWriter(fs);
}
if (w != null) {
w.WriteLine (MakeFileContents);
w.Close();
}
}
}
}

Просмотреть файл

@ -0,0 +1,28 @@
using System;
using System.Collections;
using Mono.GetOptions;
namespace Mfconsulting.General.Prj2Make.Cui
{
class MainOpts : Options
{
[Option("Output for nmake.exe", 'n')]
public bool isNmake = false;
[Option("Use csc instead of mcs", 'c')]
public bool isCsc = false;
[Option(1, "Converts a csproj/sln to prjx/cmbx", "csproj2prjx")]
public bool csproj2prjx = false;
public MainOpts()
{
ParsingMode = OptionsParsingMode.Both;
BreakSingleDashManyLettersIntoManyOptions = false;
EndOptionProcessingWithDoubleDash = true;
if (System.IO.Path.DirectorySeparatorChar.CompareTo('/') == 0)
ParsingMode = OptionsParsingMode.Linux;
}
}
}

Просмотреть файл

@ -0,0 +1,97 @@
// created on 6/8/2004 at 5:44 AM
using System;
using System.Diagnostics;
namespace Mfconsulting.General
{
public sealed class PkgConfigInvoker
{
public static string GetPkgConfigVersion()
{
string pkgout = null;
pkgout = RunPkgConfig("--version");
if(pkgout != null)
{
return pkgout;
}
return null;
}
public static string GetPkgVariableValue(string strPkg, string strVarName)
{
string pkgout = null;
pkgout = RunPkgConfig(String.Format("--variable={0} {1}",
strVarName, strPkg));
if(pkgout != null)
{
return pkgout;
}
return null;
}
public static string GetPkgConfigModuleVersion(string strPkg)
{
string pkgout = null;
pkgout = RunPkgConfig(String.Format("--modversion {0}", strPkg));
if(pkgout != null)
{
return pkgout;
}
return null;
}
public static string RunPkgConfig(string strArgLine)
{
string pkgout;
ProcessStartInfo pi = new ProcessStartInfo ();
pi.FileName = "pkg-config";
pi.RedirectStandardOutput = true;
pi.UseShellExecute = false;
pi.Arguments = strArgLine;
Process p = null;
try
{
p = Process.Start (pi);
}
catch (Exception e)
{
Console.WriteLine("Couldn't run pkg-config: " + e.Message);
return null;
}
if (p.StandardOutput == null)
{
Console.WriteLine("Specified package did not return any information");
}
pkgout = p.StandardOutput.ReadToEnd ();
p.WaitForExit ();
if (p.ExitCode != 0)
{
Console.WriteLine("Error running pkg-config. Check the above output.");
return null;
}
if (pkgout != null)
{
p.Close ();
return pkgout;
}
p.Close ();
return null;
}
}
}

Просмотреть файл

@ -0,0 +1,139 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProjectType>Local</ProjectType>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{C6089460-D3B0-4934-87BB-D96B897B72D7}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ApplicationIcon>
</ApplicationIcon>
<AssemblyKeyContainerName>
</AssemblyKeyContainerName>
<AssemblyName>prj2makesharpWin32</AssemblyName>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
<DefaultClientScript>JScript</DefaultClientScript>
<DefaultHTMLPageLayout>Grid</DefaultHTMLPageLayout>
<DefaultTargetSchema>IE50</DefaultTargetSchema>
<DelaySign>false</DelaySign>
<OutputType>Exe</OutputType>
<RootNamespace>
</RootNamespace>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<StartupObject>
</StartupObject>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<BaseAddress>285212672</BaseAddress>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DocumentationFile>
</DocumentationFile>
<DebugSymbols>true</DebugSymbols>
<FileAlignment>4096</FileAlignment>
<NoStdLib>false</NoStdLib>
<NoWarn>
</NoWarn>
<Optimize>false</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>4</WarningLevel>
<DebugType>full</DebugType>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<OutputPath>bin\Debug\</OutputPath>
<AllowUnsafeBlocks>false</AllowUnsafeBlocks>
<BaseAddress>285212672</BaseAddress>
<CheckForOverflowUnderflow>false</CheckForOverflowUnderflow>
<ConfigurationOverrideFile>
</ConfigurationOverrideFile>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DocumentationFile>
</DocumentationFile>
<DebugSymbols>true</DebugSymbols>
<FileAlignment>4096</FileAlignment>
<NoStdLib>false</NoStdLib>
<NoWarn>
</NoWarn>
<Optimize>false</Optimize>
<RegisterForComInterop>false</RegisterForComInterop>
<RemoveIntegerChecks>false</RemoveIntegerChecks>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<WarningLevel>4</WarningLevel>
<DebugType>full</DebugType>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
<ItemGroup>
<Reference Include="Mono.GetOptions">
<Name>Mono.GetOptions</Name>
<HintPath>..\reflib\Mono.GetOptions.dll</HintPath>
</Reference>
<Reference Include="System">
<Name>System</Name>
</Reference>
<Reference Include="System.Xml">
<Name>System.XML</Name>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="CsprojInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="CsprojInfo2005.cs" />
<Compile Include="csproj_ver2003.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="csproj_ver2005.cs" />
<Compile Include="cui\AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="cui\Main.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="cui\MainMod.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="cui\MainOpts.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="MdPrjHelper.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="MsPrjHelper.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="pkgconfiginvoker.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="PrjHelper.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="PrjxInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="sharp_d_cmbx.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="sharp_d_prjx.cs">
<SubType>Code</SubType>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
</Project>

Просмотреть файл

@ -0,0 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "prj2makesharp", "prj2makesharp.csproj", "{C6089460-D3B0-4934-87BB-D96B897B72D7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Просмотреть файл

@ -0,0 +1,117 @@
namespace Mfconsulting.General.Prj2Make.Schema.Cmbx {
using System.Xml.Serialization;
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Combine {
/// <remarks/>
public StartMode StartMode;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
public Entry[] Entries;
/// <remarks/>
public Configurations Configurations;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public System.Decimal fileversion;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string name;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string description;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class StartMode {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Execute")]
public Execute[] Execute;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string startupentry;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string single;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Execute {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string entry;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string type;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Configuration {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Entry")]
public Entry[] Entry;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string name;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Entry {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string filename;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string name;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string configurationname;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string build;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Configurations {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Configuration")]
public Configuration[] Configuration;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string active;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Entries {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Entry")]
public Entry[] Entry;
}
}

Просмотреть файл

@ -0,0 +1,326 @@
namespace Mfconsulting.General.Prj2Make.Schema.Prjx {
using System.Xml.Serialization;
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class CodeGeneration {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string runtime;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string compiler;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public System.SByte warninglevel;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string nowarn;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public CodeGenerationIncludedebuginformation includedebuginformation;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string optimize;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public CodeGenerationUnsafecodeallowed unsafecodeallowed;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string generateoverflowchecks;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string mainclass;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string target;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string definesymbols;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string generatexmldocumentation;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string win32Icon;
}
/// <remarks/>
public enum CodeGenerationIncludedebuginformation {
/// <remarks/>
False,
/// <remarks/>
True,
}
/// <remarks/>
public enum CodeGenerationUnsafecodeallowed {
/// <remarks/>
False,
/// <remarks/>
True,
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Configuration {
/// <remarks/>
public CodeGeneration CodeGeneration;
/// <remarks/>
public Execution Execution;
/// <remarks/>
public Output Output;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string runwithwarnings;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string name;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Execution {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string commandlineparameters;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string consolepause;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Output {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string directory;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string assembly;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string executeScript;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string executeBeforeBuild;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string executeAfterBuild;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Configurations {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Configuration")]
public Configuration[] Configuration;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string active;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Contents {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("File")]
public File[] File;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class File {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string name;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public FileSubtype subtype;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public FileBuildaction buildaction;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string dependson;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string data;
}
/// <remarks/>
public enum FileSubtype {
/// <remarks/>
Code,
/// <remarks/>
Directory,
}
/// <remarks/>
public enum FileBuildaction {
/// <remarks/>
Nothing,
/// <remarks/>
Compile,
/// <remarks/>
EmbedAsResource,
/// <remarks/>
Exclude,
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class DeploymentInformation {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string target;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string script;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string strategy;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Project {
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
public File[] Contents;
/// <remarks/>
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable=false)]
public Reference[] References;
/// <remarks/>
public DeploymentInformation DeploymentInformation;
/// <remarks/>
public Configuration Configuration;
/// <remarks/>
public Configurations Configurations;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string name;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string description;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string newfilesearch;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string enableviewstate;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public System.Decimal version;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string projecttype;
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class Reference {
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public ReferenceType type;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public string refto;
/// <remarks/>
[System.Xml.Serialization.XmlAttributeAttribute()]
public ReferenceLocalcopy localcopy;
}
/// <remarks/>
public enum ReferenceType {
/// <remarks/>
Assembly,
/// <remarks/>
Gac,
/// <remarks/>
Project,
}
/// <remarks/>
public enum ReferenceLocalcopy {
/// <remarks/>
False,
/// <remarks/>
True,
}
/// <remarks/>
[System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
public class References {
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("Reference")]
public Reference[] Reference;
}
}

51
vsAddIn2005/README Normal file
Просмотреть файл

@ -0,0 +1,51 @@
README for monoaddin ver 0.95.1.0
By Francisco T. Martinez <paco@mfcon.com> Sunday, September 26, 2004
-------------------------------------------------------------------------------
General Description
The Visual Studio Prj2Make# add-in is meant to complement the Mono Combined
Win32 Installer. This add in should simplify the use of Visual Studio .NET 2003
as a development platform for Mono applications and may ease the deployment of
the developer's solution to other non-Windows platforms supported by Mono.
As stated above, the monoaddin Add-in is closely linked and dependent of the
Mono Combined Win32 Installer.
Requirements:
- Visual Studio .NET 2003
- Mono Combined Win32 Installer (mono-1.0.2-gtksharp-1.0.2-win32-0.7.exe)
Credits and Related Information
The Prj2Make# add-in as well as it's installer have been developed by
Francisco "Paco" Martinez under the recommendations and advice of the
Mono community. Special gratitude to Maria Figueroa, Roger Martinez,
Mildred Martinez, Daniel Morgan, Miguel de Icaza, Todd Berman, Lluis
Sanchez, Atsushi Enomoto and Joseph Hill. Special thanks to my children,
Monica and Paquito for letting me use their quality time for the betterment
of mankind.
For Support and Questions you can visit the locations or email the mail
list below:
http://forge.novell.com/modules/xfmod/project/?prj2make-sharp
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
Mono Combined Installer Web Site URL:
http://forge.novell.com/modules/xfmod/project/?monowin32
Mono Combined Installer Mailing List Subscription and Archive:
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
Mono Project Web Site URL:
http://www.mono-project.com
Mono Project Mailing List Subscription and Archive:
http://www.mono-project.com/about/mailing-lists.html#maillists
Microsoft .NET, Visual Studio .NET 2003 and Windows are registered trademarks
of Microsoft Corporation.

61
vsAddIn2005/README.txt Normal file
Просмотреть файл

@ -0,0 +1,61 @@
README for monoaddin ver 0.99.0.2
By Francisco T. Martinez <paco@mfcon.com> 5:56 PM 1/2/2006
-------------------------------------------------------------------------------
General Description
The Visual Studio Prj2Make# add-in is meant to complement the Mono Combined
Win32 Installer. This add in should simplify the use of Visual Studio .NET 2003
as a development platform for Mono applications and may ease the deployment of
the developer's solution to other non-Windows platforms supported by Mono.
As stated above, the monoaddin Add-in is closely linked and dependent of the
Mono Combined Win32 Installer.
New in this Release:
The "Test In Mono" menu option is now implemented. This will give users the
ability to run the currently selected Startup project in a Visual Studio Solution
using the Mono Runtime that is selected in accordance with MonoLaunch.
Requirements:
- Visual Studio 2005
- Mono Combined Win32 Installer (mono-1.1.10-gtksharp-2.4.0-win32-x.x.exe or higher)
- Mono Runtime Selector Win32 Installer (MonoLaunch-1.0.0.2-1.exe or higher)
Credits and Related Information
The Prj2Make# add-in as well as it's installer have been developed by
Francisco "Paco" Martinez under the recommendations and advice of the
Mono community. Special gratitude to Maria Figueroa, Roger Martinez,
Mildred Martinez, Daniel Morgan, Miguel de Icaza, Todd Berman, Lluis
Sanchez, Atsushi Enomoto and Joseph Hill. Special thanks to my children,
Monica and Paquito for letting me use their quality time for the betterment
of mankind.
For Support and Questions you can visit the locations or email the mail
list below:
http://forge.novell.com/modules/xfmod/project/?prj2make-sharp
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
Mono Combined Installer Web Site URL:
http://forge.novell.com/modules/xfmod/project/?monowin32
Mono Combined Installer Mailing List Subscription and Archive:
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
Mono Project Web Site URL:
http://www.mono-project.com
Mono Project Mailing List Subscription and Archive:
http://www.mono-project.com/about/mailing-lists.html#maillists
Microsoft .NET, Visual Studio 2005 and Windows are registered trademarks
of Microsoft Corporation.

Просмотреть файл

@ -0,0 +1,61 @@
README for vspr2make ver 0.99.0.2
By Francisco T. Martinez <paco@mfcon.com> 5:56 PM 1/2/2006
-------------------------------------------------------------------------------
General Description
The Visual Studio Prj2Make# add-in is meant to complement the Mono Combined
Win32 Installer. This add in should simplify the use of Visual Studio .NET 2003
as a development platform for Mono applications and may ease the deployment of
the developer's solution to other non-Windows platforms supported by Mono.
As stated above, the vspr2make Add-in is closely linked and dependent of the
Mono Combined Win32 Installer.
New in this Release:
The "Test In Mono" menu option is now implemented. This will give users the
ability to run the currently selected Startup project in a Visual Studio Solution
using the Mono Runtime that is selected in accordance with MonoLaunch.
Requirements:
- Visual Studio .NET 2003
- Mono Combined Win32 Installer (mono-1.1.10-gtksharp-2.4.0-win32-x.x.exe or higher)
- Mono Runtime Selector Win32 Installer (MonoLaunch-1.0.0.2-1.exe or higher)
Credits and Related Information
The Prj2Make# add-in as well as it's installer have been developed by
Francisco "Paco" Martinez under the recommendations and advice of the
Mono community. Special gratitude to Maria Figueroa, Roger Martinez,
Mildred Martinez, Daniel Morgan, Miguel de Icaza, Todd Berman, Lluis
Sanchez, Atsushi Enomoto and Joseph Hill. Special thanks to my children,
Monica and Paquito for letting me use their quality time for the betterment
of mankind.
For Support and Questions you can visit the locations or email the mail
list below:
http://forge.novell.com/modules/xfmod/project/?prj2make-sharp
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
Mono Combined Installer Web Site URL:
http://forge.novell.com/modules/xfmod/project/?monowin32
Mono Combined Installer Mailing List Subscription and Archive:
http://forge.novell.com/modules/xfmod/maillist/?group_id=1395
Mono Project Web Site URL:
http://www.mono-project.com
Mono Project Mailing List Subscription and Archive:
http://www.mono-project.com/about/mailing-lists.html#maillists
Microsoft .NET, Visual Studio .NET 2003 and Windows are registered trademarks
of Microsoft Corporation.

32
vsAddIn2005/monoaddin.sln Normal file
Просмотреть файл

@ -0,0 +1,32 @@

Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "monoaddin", "monoaddin\monoaddin.csproj", "{4441F814-D559-4C3F-9250-650709C79BB0}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CreateZipFile", "CreateZipFile\CreateZipFile.csproj", "{7546314B-68AE-4067-B3F2-3D703AACED64}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "prj2makesharp", "Prj2MakeWin32\prj2makesharp.csproj", "{C6089460-D3B0-4934-87BB-D96B897B72D7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4441F814-D559-4C3F-9250-650709C79BB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4441F814-D559-4C3F-9250-650709C79BB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4441F814-D559-4C3F-9250-650709C79BB0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4441F814-D559-4C3F-9250-650709C79BB0}.Release|Any CPU.Build.0 = Release|Any CPU
{7546314B-68AE-4067-B3F2-3D703AACED64}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7546314B-68AE-4067-B3F2-3D703AACED64}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7546314B-68AE-4067-B3F2-3D703AACED64}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7546314B-68AE-4067-B3F2-3D703AACED64}.Release|Any CPU.Build.0 = Release|Any CPU
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C6089460-D3B0-4934-87BB-D96B897B72D7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

Двоичные данные
vsAddIn2005/monoaddin.suo Normal file

Двоичный файл не отображается.

Двоичные данные
vsAddIn2005/monoaddin/AssemblyInfo.cs Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1">
<Font Name="Microsoft Sans Serif" Size="8.25" />
<Class Name="Mfconsulting.Vsprj2make.Connect" Collapsed="true" BaseTypeListCollapsed="true">
<Position X="0.5" Y="0.5" Width="1.5" />
<TypeIdentifier>
<FileName>Connect.cs</FileName>
<HashCode>gABAIEAAAAAAAABAAAQAAAAAKAAAABAAAAAAAABAAAA=</HashCode>
</TypeIdentifier>
<Lollipop Position="0.2" Collapsed="true" />
</Class>
<Class Name="Mfconsulting.Vsprj2make.CreateZipHelper" Collapsed="true">
<Position X="2.25" Y="0.5" Width="1.5" />
<TypeIdentifier>
<FileName>CreateZipHelper.cs</FileName>
<HashCode>AAAIAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAEAAAAAAA=</HashCode>
</TypeIdentifier>
</Class>
<Class Name="Mfconsulting.Vsprj2make.MonoLaunchHelper" Collapsed="true">
<Position X="4" Y="0.5" Width="1.5" />
<TypeIdentifier>
<FileName>MonoLaunchHelper.cs</FileName>
<HashCode>AAAAAAAAAAAAAAAAAAEAAAAAAAAAQEAAgAAAAAAAEAA=</HashCode>
</TypeIdentifier>
</Class>
<Class Name="Mfconsulting.Vsprj2make.OptionsDlg" Collapsed="true">
<Position X="0.5" Y="1.5" Width="1.5" />
<TypeIdentifier>
<FileName>OptionsDlg.cs</FileName>
<HashCode>QAAAAAABECQAIRAAIACAEACeAEw8AAAAAHAIAAABFAA=</HashCode>
</TypeIdentifier>
</Class>
<Class Name="Mfconsulting.Vsprj2make.Prj2MakeHelper" Collapsed="true">
<Position X="2.25" Y="1.5" Width="1.5" />
<TypeIdentifier>
<FileName>Prj2MakeHelper.cs</FileName>
<HashCode>AAAAAkAAAAAAAAAAgAAAAAAAAAAAAAABAAAAAAAAAAA=</HashCode>
</TypeIdentifier>
</Class>
<Class Name="Mfconsulting.Vsprj2make.RegistryHelper" Collapsed="true">
<Position X="4" Y="1.5" Width="1.5" />
<TypeIdentifier>
<FileName>RegistryHelper.cs</FileName>
<HashCode>ICCAAAEAEAAEAAAAAQAAAgQACCAAAAIAAAAAAgEAAAM=</HashCode>
</TypeIdentifier>
</Class>
</ClassDiagram>

Просмотреть файл

@ -0,0 +1,424 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="enAction"> <value xml:space="preserve">Action</value></data>
<data name="enAddins"> <value xml:space="preserve">Addins</value></data>
<data name="enBuild"> <value xml:space="preserve">Build</value></data>
<data name="enClass Diagram"> <value xml:space="preserve">Class Diagram</value></data>
<data name="enCommunity"> <value xml:space="preserve">Community</value></data>
<data name="enData"> <value xml:space="preserve">Data</value></data>
<data name="enDatabase"> <value xml:space="preserve">Database</value></data>
<data name="enDatabase Diagram"><value xml:space="preserve">Database Diagram</value></data>
<data name="enDebug"> <value xml:space="preserve">Debug</value></data>
<data name="enDiagram"> <value xml:space="preserve">Diagram</value></data>
<data name="enEdit"> <value xml:space="preserve">Edit</value></data>
<data name="enFile"> <value xml:space="preserve">File</value></data>
<data name="enFormat"> <value xml:space="preserve">Format</value></data>
<data name="enFrames"> <value xml:space="preserve">Frames</value></data>
<data name="enHelp"> <value xml:space="preserve">Help</value></data>
<data name="enImage"> <value xml:space="preserve">Image</value></data>
<data name="enLayout"> <value xml:space="preserve">Layout</value></data>
<data name="enMacros"> <value xml:space="preserve">Macros</value></data>
<data name="enProject"> <value xml:space="preserve">Project</value></data>
<data name="enQuery"> <value xml:space="preserve">Query</value></data>
<data name="enQuery Designer"> <value xml:space="preserve">Query Designer</value></data>
<data name="enRefactor"> <value xml:space="preserve">Refactor</value></data>
<data name="enResources"> <value xml:space="preserve">Resources</value></data>
<data name="enSchema"> <value xml:space="preserve">Schema</value></data>
<data name="enStyles"> <value xml:space="preserve">Styles</value></data>
<data name="enTeam"> <value xml:space="preserve">Team</value></data>
<data name="enTable"> <value xml:space="preserve">Table</value></data>
<data name="enTable Designer"> <value xml:space="preserve">Table Designer</value></data>
<data name="enTest"> <value xml:space="preserve">Test</value></data>
<data name="enTools"> <value xml:space="preserve">Tools</value></data>
<data name="enView"> <value xml:space="preserve">View</value></data>
<data name="enWindow"> <value xml:space="preserve">Window</value></data>
<data name="enXML"> <value xml:space="preserve">XML</value></data>
<data name="jaAction"> <value xml:space="preserve">操作</value></data>
<data name="jaAddins"> <value xml:space="preserve">アドイン</value></data>
<data name="jaBuild"> <value xml:space="preserve">ビルド</value></data>
<data name="jaClass Diagram"> <value xml:space="preserve">クラス ダイアグラム</value></data>
<data name="jaCommunity"> <value xml:space="preserve">コミュニティ</value></data>
<data name="jaData"> <value xml:space="preserve">データ</value></data>
<data name="jaDatabase"> <value xml:space="preserve">データベース</value></data>
<data name="jaDatabase Diagram"><value xml:space="preserve">データベース ダイアグラム</value></data>
<data name="jaDebug"> <value xml:space="preserve">デバッグ</value></data>
<data name="jaDiagram"> <value xml:space="preserve">ダイアグラム</value></data>
<data name="jaEdit"> <value xml:space="preserve">編集</value></data>
<data name="jaFile"> <value xml:space="preserve">ファイル</value></data>
<data name="jaFormat"> <value xml:space="preserve">書式</value></data>
<data name="jaFrames"> <value xml:space="preserve">フレーム</value></data>
<data name="jaHelp"> <value xml:space="preserve">ヘルプ</value></data>
<data name="jaImage"> <value xml:space="preserve">イメージ</value></data>
<data name="jaLayout"> <value xml:space="preserve">レイアウト</value></data>
<data name="jaMacros"> <value xml:space="preserve">マクロ</value></data>
<data name="jaProject"> <value xml:space="preserve">プロジェクト</value></data>
<data name="jaQuery"> <value xml:space="preserve">クエリ</value></data>
<data name="jaQuery Designer"> <value xml:space="preserve">クエリ デザイナ</value></data>
<data name="jaRefactor"> <value xml:space="preserve">リファクタ</value></data>
<data name="jaResources"> <value xml:space="preserve">リソース</value></data>
<data name="jaSchema"> <value xml:space="preserve">スキーマ</value></data>
<data name="jaStyles"> <value xml:space="preserve">スタイル</value></data>
<data name="jaTeam"> <value xml:space="preserve">チーム</value></data>
<data name="jaTable"> <value xml:space="preserve">テーブル</value></data>
<data name="jaTable Designer"> <value xml:space="preserve">テーブル デザイナ</value></data>
<data name="jaTest"> <value xml:space="preserve">テスト</value></data>
<data name="jaTools"> <value xml:space="preserve">ツール</value></data>
<data name="jaView"> <value xml:space="preserve">表示</value></data>
<data name="jaWindow"> <value xml:space="preserve">ウィンドウ</value></data>
<data name="jaXML"> <value xml:space="preserve">XML</value></data>
<data name="deAction"> <value xml:space="preserve">Aktion</value></data>
<data name="deAddins"> <value xml:space="preserve">Add-Ins</value></data>
<data name="deBuild"> <value xml:space="preserve">Erstellen</value></data>
<data name="deClass Diagram"> <value xml:space="preserve">Klassendiagramm</value></data>
<data name="deCommunity"> <value xml:space="preserve">Community</value></data>
<data name="deData"> <value xml:space="preserve">Daten</value></data>
<data name="deDatabase"> <value xml:space="preserve">Datenbank</value></data>
<data name="deDatabase Diagram"><value xml:space="preserve">Datenbankdiagramm</value></data>
<data name="deDebug"> <value xml:space="preserve">Debuggen</value></data>
<data name="deDiagram"> <value xml:space="preserve">Diagramm</value></data>
<data name="deEdit"> <value xml:space="preserve">Bearbeiten</value></data>
<data name="deFile"> <value xml:space="preserve">Datei</value></data>
<data name="deFormat"> <value xml:space="preserve">Format</value></data>
<data name="deFrames"> <value xml:space="preserve">Rahmen</value></data>
<data name="deHelp"> <value xml:space="preserve">Hilfe</value></data>
<data name="deImage"> <value xml:space="preserve">Bild</value></data>
<data name="deLayout"> <value xml:space="preserve">Layout</value></data>
<data name="deMacros"> <value xml:space="preserve">Makros</value></data>
<data name="deProject"> <value xml:space="preserve">Projekt</value></data>
<data name="deQuery"> <value xml:space="preserve">Query</value></data>
<data name="deQuery Designer"> <value xml:space="preserve">Abfrage-Designer</value></data>
<data name="deRefactor"> <value xml:space="preserve">Umgestalten</value></data>
<data name="deResources"> <value xml:space="preserve">Ressourcen</value></data>
<data name="deSchema"> <value xml:space="preserve">Schema</value></data>
<data name="deStyles"> <value xml:space="preserve">Formate</value></data>
<data name="deTeam"> <value xml:space="preserve">Team</value></data>
<data name="deTable"> <value xml:space="preserve">Tabelle</value></data>
<data name="deTable Designer"> <value xml:space="preserve">Tabellen-Designer</value></data>
<data name="deTest"> <value xml:space="preserve">Testen</value></data>
<data name="deTools"> <value xml:space="preserve">Extras</value></data>
<data name="deView"> <value xml:space="preserve">Ansicht</value></data>
<data name="deWindow"> <value xml:space="preserve">Fenster</value></data>
<data name="deXML"> <value xml:space="preserve">XML</value></data>
<data name="esAction"> <value xml:space="preserve">Acción</value></data>
<data name="esAddins"> <value xml:space="preserve">Complementos</value></data>
<data name="esBuild"> <value xml:space="preserve">Generar</value></data>
<data name="esClass Diagram"> <value xml:space="preserve">Diagrama de clase</value></data>
<data name="esCommunity"> <value xml:space="preserve">Comunidad</value></data>
<data name="esData"> <value xml:space="preserve">Datos</value></data>
<data name="esDatabase"> <value xml:space="preserve">Base de datos</value></data>
<data name="esDatabase Diagram"><value xml:space="preserve">Diagrama de base de datos</value></data>
<data name="esDebug"> <value xml:space="preserve">Depurar</value></data>
<data name="esDiagram"> <value xml:space="preserve">Diagrama</value></data>
<data name="esEdit"> <value xml:space="preserve">Editar</value></data>
<data name="esFile"> <value xml:space="preserve">Archivo</value></data>
<data name="esFormat"> <value xml:space="preserve">Formato</value></data>
<data name="esFrames"> <value xml:space="preserve">Marcos</value></data>
<data name="esHelp"> <value xml:space="preserve">Ayuda</value></data>
<data name="esImage"> <value xml:space="preserve">Imagen</value></data>
<data name="esLayout"> <value xml:space="preserve">Diseño</value></data>
<data name="esMacros"> <value xml:space="preserve">Macros</value></data>
<data name="esProject"> <value xml:space="preserve">Proyecto</value></data>
<data name="esQuery"> <value xml:space="preserve">Consulta</value></data>
<data name="esQuery Designer"> <value xml:space="preserve">Diseñador de consultas</value></data>
<data name="esRefactor"> <value xml:space="preserve">Refactorizar</value></data>
<data name="esResources"> <value xml:space="preserve">Recursos</value></data>
<data name="esSchema"> <value xml:space="preserve">Esquema</value></data>
<data name="esStyles"> <value xml:space="preserve">Estilos</value></data>
<data name="esTeam"> <value xml:space="preserve">Equipo</value></data>
<data name="esTable"> <value xml:space="preserve">Tabla</value></data>
<data name="esTable Designer"> <value xml:space="preserve">Diseñador de tablas</value></data>
<data name="esTest"> <value xml:space="preserve">Prueba</value></data>
<data name="esTools"> <value xml:space="preserve">Herramientas</value></data>
<data name="esView"> <value xml:space="preserve">Ver</value></data>
<data name="esWindow"> <value xml:space="preserve">Ventana</value></data>
<data name="esXML"> <value xml:space="preserve">XML</value></data>
<data name="frAction"> <value xml:space="preserve">Action</value></data>
<data name="frAddins"> <value xml:space="preserve">Compléments</value></data>
<data name="frBuild"> <value xml:space="preserve">Générer</value></data>
<data name="frClass Diagram"> <value xml:space="preserve">Diagramme de classes</value></data>
<data name="frCommunity"> <value xml:space="preserve">Communauté</value></data>
<data name="frData"> <value xml:space="preserve">Données</value></data>
<data name="frDatabase"> <value xml:space="preserve">Base de données</value></data>
<data name="frDatabase Diagram"><value xml:space="preserve">Schéma de base de données</value></data>
<data name="frDebug"> <value xml:space="preserve">Déboguer</value></data>
<data name="frDiagram"> <value xml:space="preserve">Schéma</value></data>
<data name="frEdit"> <value xml:space="preserve">Modifier</value></data>
<data name="frFile"> <value xml:space="preserve">Fichier</value></data>
<data name="frFormat"> <value xml:space="preserve">Format</value></data>
<data name="frFrames"> <value xml:space="preserve">Frames</value></data>
<data name="frHelp"> <value xml:space="preserve">?</value></data>
<data name="frImage"> <value xml:space="preserve">Image</value></data>
<data name="frLayout"> <value xml:space="preserve">Disposition</value></data>
<data name="frMacros"> <value xml:space="preserve">Macros</value></data>
<data name="frProject"> <value xml:space="preserve">Projet</value></data>
<data name="frQuery"> <value xml:space="preserve">Requête</value></data>
<data name="frQuery Designer"> <value xml:space="preserve">Concepteur de requêtes</value></data>
<data name="frRefactor"> <value xml:space="preserve">Refactoriser</value></data>
<data name="frResources"> <value xml:space="preserve">Ressources</value></data>
<data name="frSchema"> <value xml:space="preserve">Schéma</value></data>
<data name="frStyles"> <value xml:space="preserve">Styles</value></data>
<data name="frTeam"> <value xml:space="preserve">équipe</value></data>
<data name="frTable"> <value xml:space="preserve">Tableau</value></data>
<data name="frTable Designer"> <value xml:space="preserve">Concepteur de tables</value></data>
<data name="frTest"> <value xml:space="preserve">Test</value></data>
<data name="frTools"> <value xml:space="preserve">Outils</value></data>
<data name="frView"> <value xml:space="preserve">Affichage</value></data>
<data name="frWindow"> <value xml:space="preserve">Fenêtre</value></data>
<data name="frXML"> <value xml:space="preserve">XML</value></data>
<data name="itAction"> <value xml:space="preserve">Azione</value></data>
<data name="itAddins"> <value xml:space="preserve">Componenti aggiuntivi</value></data>
<data name="itBuild"> <value xml:space="preserve">Genera</value></data>
<data name="itClass Diagram"> <value xml:space="preserve">Diagramma classi</value></data>
<data name="itCommunity"> <value xml:space="preserve">Comunità</value></data>
<data name="itData"> <value xml:space="preserve">Dati</value></data>
<data name="itDatabase"> <value xml:space="preserve">Database</value></data>
<data name="itDatabase Diagram"><value xml:space="preserve">Diagramma database</value></data>
<data name="itDebug"> <value xml:space="preserve">Debug</value></data>
<data name="itDiagram"> <value xml:space="preserve">Diagramma</value></data>
<data name="itEdit"> <value xml:space="preserve">Modifica</value></data>
<data name="itFile"> <value xml:space="preserve">File</value></data>
<data name="itFormat"> <value xml:space="preserve">Formato</value></data>
<data name="itFrames"> <value xml:space="preserve">Frame</value></data>
<data name="itHelp"> <value xml:space="preserve">?</value></data>
<data name="itImage"> <value xml:space="preserve">Immagine</value></data>
<data name="itLayout"> <value xml:space="preserve">Layout</value></data>
<data name="itMacros"> <value xml:space="preserve">Macro</value></data>
<data name="itProject"> <value xml:space="preserve">Progetto</value></data>
<data name="itQuery"> <value xml:space="preserve">Query</value></data>
<data name="itQuery Designer"> <value xml:space="preserve">Progettazione query</value></data>
<data name="itRefactor"> <value xml:space="preserve">Effettua refactoring</value></data>
<data name="itResources"> <value xml:space="preserve">Risorse</value></data>
<data name="itSchema"> <value xml:space="preserve">Schema</value></data>
<data name="itStyles"> <value xml:space="preserve">Stili</value></data>
<data name="itTeam"> <value xml:space="preserve">Team</value></data>
<data name="itTable"> <value xml:space="preserve">Tabella</value></data>
<data name="itTable Designer"> <value xml:space="preserve">Progettazione tabelle</value></data>
<data name="itTest"> <value xml:space="preserve">Prova</value></data>
<data name="itTools"> <value xml:space="preserve">Strumenti</value></data>
<data name="itView"> <value xml:space="preserve">Visualizza</value></data>
<data name="itWindow"> <value xml:space="preserve">Finestra</value></data>
<data name="itXML"> <value xml:space="preserve">XML</value></data>
<data name="koAction"> <value xml:space="preserve">작업</value></data>
<data name="koAddins"> <value xml:space="preserve">추가 기능</value></data>
<data name="koBuild"> <value xml:space="preserve">빌드</value></data>
<data name="koClass Diagram"> <value xml:space="preserve">클래스 다이어그램</value></data>
<data name="koCommunity"> <value xml:space="preserve">커뮤니티</value></data>
<data name="koData"> <value xml:space="preserve">데이터</value></data>
<data name="koDatabase"> <value xml:space="preserve">데이터베이스</value></data>
<data name="koDatabase Diagram"><value xml:space="preserve">데이터베이스 다이어그램</value></data>
<data name="koDebug"> <value xml:space="preserve">디버그</value></data>
<data name="koDiagram"> <value xml:space="preserve">다이어그램</value></data>
<data name="koEdit"> <value xml:space="preserve">편집</value></data>
<data name="koFile"> <value xml:space="preserve">파일</value></data>
<data name="koFormat"> <value xml:space="preserve">서식</value></data>
<data name="koFrames"> <value xml:space="preserve">프레임</value></data>
<data name="koHelp"> <value xml:space="preserve">도움말</value></data>
<data name="koImage"> <value xml:space="preserve">이미지</value></data>
<data name="koLayout"> <value xml:space="preserve">레이아웃</value></data>
<data name="koMacros"> <value xml:space="preserve">매크로</value></data>
<data name="koProject"> <value xml:space="preserve">프로젝트</value></data>
<data name="koQuery"> <value xml:space="preserve">쿼리</value></data>
<data name="koQuery Designer"> <value xml:space="preserve">쿼리 디자이너</value></data>
<data name="koRefactor"> <value xml:space="preserve">리팩터링</value></data>
<data name="koResources"> <value xml:space="preserve">리소스</value></data>
<data name="koSchema"> <value xml:space="preserve">스키마</value></data>
<data name="koStyles"> <value xml:space="preserve">스타일</value></data>
<data name="koTeam"> <value xml:space="preserve">팀</value></data>
<data name="koTable"> <value xml:space="preserve">테이블</value></data>
<data name="koTable Designer"> <value xml:space="preserve">테이블 디자이너</value></data>
<data name="koTest"> <value xml:space="preserve">테스트</value></data>
<data name="koTools"> <value xml:space="preserve">도구</value></data>
<data name="koView"> <value xml:space="preserve">뷰</value></data>
<data name="koWindow"> <value xml:space="preserve">창</value></data>
<data name="koXML"> <value xml:space="preserve">XML</value></data>
<data name="zh-CHSAction"> <value xml:space="preserve">操作</value></data>
<data name="zh-CHSAddins"> <value xml:space="preserve">外接程序</value></data>
<data name="zh-CHSBuild"> <value xml:space="preserve">生成</value></data>
<data name="zh-CHSClass Diagram"> <value xml:space="preserve">类关系图</value></data>
<data name="zh-CHSCommunity"> <value xml:space="preserve">社区</value></data>
<data name="zh-CHSData"> <value xml:space="preserve">数据</value></data>
<data name="zh-CHSDatabase"> <value xml:space="preserve">数据库</value></data>
<data name="zh-CHSDatabase Diagram"><value xml:space="preserve">数据库关系图</value></data>
<data name="zh-CHSDebug"> <value xml:space="preserve">调试</value></data>
<data name="zh-CHSDiagram"> <value xml:space="preserve">关系图</value></data>
<data name="zh-CHSEdit"> <value xml:space="preserve">编辑</value></data>
<data name="zh-CHSFile"> <value xml:space="preserve">文件</value></data>
<data name="zh-CHSFormat"> <value xml:space="preserve">格式</value></data>
<data name="zh-CHSFrames"> <value xml:space="preserve">框架</value></data>
<data name="zh-CHSHelp"> <value xml:space="preserve">帮助</value></data>
<data name="zh-CHSImage"> <value xml:space="preserve">图像</value></data>
<data name="zh-CHSLayout"> <value xml:space="preserve">布局</value></data>
<data name="zh-CHSMacros"> <value xml:space="preserve">宏</value></data>
<data name="zh-CHSProject"> <value xml:space="preserve">项目</value></data>
<data name="zh-CHSQuery"> <value xml:space="preserve">查询</value></data>
<data name="zh-CHSQuery Designer"> <value xml:space="preserve">查询设计器</value></data>
<data name="zh-CHSRefactor"> <value xml:space="preserve">重构</value></data>
<data name="zh-CHSResources"> <value xml:space="preserve">资源</value></data>
<data name="zh-CHSSchema"> <value xml:space="preserve">架构</value></data>
<data name="zh-CHSStyles"> <value xml:space="preserve">样式</value></data>
<data name="zh-CHSTeam"> <value xml:space="preserve">工作组</value></data>
<data name="zh-CHSTable"> <value xml:space="preserve">表</value></data>
<data name="zh-CHSTable Designer"> <value xml:space="preserve">表设计器</value></data>
<data name="zh-CHSTest"> <value xml:space="preserve">测试</value></data>
<data name="zh-CHSTools"> <value xml:space="preserve">工具</value></data>
<data name="zh-CHSView"> <value xml:space="preserve">视图</value></data>
<data name="zh-CHSWindow"> <value xml:space="preserve">窗口</value></data>
<data name="zh-CHSXML"> <value xml:space="preserve">XML</value></data>
<data name="zh-CHTAction"> <value xml:space="preserve">動作</value></data>
<data name="zh-CHTAddins"> <value xml:space="preserve">增益集</value></data>
<data name="zh-CHTBuild"> <value xml:space="preserve">建置</value></data>
<data name="zh-CHTClass Diagram"> <value xml:space="preserve">類別圖表</value></data>
<data name="zh-CHTCommunity"> <value xml:space="preserve">社群</value></data>
<data name="zh-CHTData"> <value xml:space="preserve">資料</value></data>
<data name="zh-CHTDatabase"> <value xml:space="preserve">資料庫</value></data>
<data name="zh-CHTDatabase Diagram"><value xml:space="preserve">資料庫圖表</value></data>
<data name="zh-CHTDebug"> <value xml:space="preserve">偵錯</value></data>
<data name="zh-CHTDiagram"> <value xml:space="preserve">圖表</value></data>
<data name="zh-CHTEdit"> <value xml:space="preserve">編輯</value></data>
<data name="zh-CHTFile"> <value xml:space="preserve">檔案</value></data>
<data name="zh-CHTFormat"> <value xml:space="preserve">格式</value></data>
<data name="zh-CHTFrames"> <value xml:space="preserve">框架</value></data>
<data name="zh-CHTHelp"> <value xml:space="preserve">說明</value></data>
<data name="zh-CHTImage"> <value xml:space="preserve">影像</value></data>
<data name="zh-CHTLayout"> <value xml:space="preserve">配置</value></data>
<data name="zh-CHTMacros"> <value xml:space="preserve">巨集</value></data>
<data name="zh-CHTProject"> <value xml:space="preserve">專案</value></data>
<data name="zh-CHTQuery"> <value xml:space="preserve">查詢</value></data>
<data name="zh-CHTQuery Designer"> <value xml:space="preserve">查詢設計工具</value></data>
<data name="zh-CHTRefactor"> <value xml:space="preserve">重整</value></data>
<data name="zh-CHTResources"> <value xml:space="preserve">資源</value></data>
<data name="zh-CHTSchema"> <value xml:space="preserve">結構描述</value></data>
<data name="zh-CHTStyles"> <value xml:space="preserve">樣式</value></data>
<data name="zh-CHTTeam"> <value xml:space="preserve">小組</value></data>
<data name="zh-CHTTable"> <value xml:space="preserve">資料表</value></data>
<data name="zh-CHTTable Designer"> <value xml:space="preserve">資料表設計工具</value></data>
<data name="zh-CHTTest"> <value xml:space="preserve">測試</value></data>
<data name="zh-CHTTools"> <value xml:space="preserve">工具</value></data>
<data name="zh-CHTView"> <value xml:space="preserve">檢視</value></data>
<data name="zh-CHTWindow"> <value xml:space="preserve">視窗</value></data>
<data name="zh-CHTXML"> <value xml:space="preserve">XML</value></data>
</root>

Двоичные данные
vsAddIn2005/monoaddin/Connect.cs Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,109 @@
using System;
using System.Diagnostics;
namespace Mfconsulting.Vsprj2make
{
/// <summary>
/// Summary description for CreateZipHelper.
/// </summary>
public class CreateZipHelper
{
private string m_strCreateZipPath;
public CreateZipHelper()
{
if(IsCreateZipAvailable() == false)
{
throw new Exception("CreateZip may not be installed");
}
}
public string CreateZipFile(string strInputFilePath, string strIgnoredDirs, string strIgnoredEx, int nLevel)
{
string strCreateZipStdOut;
System.Text.StringBuilder strbArgLine = new System.Text.StringBuilder();
char []carSpecialCharacters = {' ','\t', ',', '*', '%', '!'};
// Build the command line parameters
if(strInputFilePath.IndexOfAny(carSpecialCharacters)== -1)
{
strbArgLine.AppendFormat("-f {0}",
strInputFilePath);
}
else
{
strbArgLine.AppendFormat("-f \"{0}\"",
strInputFilePath);
}
if(strIgnoredDirs.Length > 1)
{
strbArgLine.AppendFormat(" --IgnoredDirectories \"{0}\"", strIgnoredDirs);
}
if(strIgnoredEx.Length > 1)
{
strbArgLine.AppendFormat(" --IgnoredExtensions \"{0}\"", strIgnoredEx);
}
strbArgLine.AppendFormat(" -l {0}", nLevel.ToString());
ProcessStartInfo pi = new ProcessStartInfo();
pi.FileName = m_strCreateZipPath;
pi.RedirectStandardOutput = true;
pi.UseShellExecute = false;
pi.CreateNoWindow = true;
pi.Arguments = strbArgLine.ToString();
Process p = null;
try
{
p = Process.Start (pi);
}
catch (Exception e)
{
Console.WriteLine("Couldn't run CreateZipFromSln: " + e.Message);
return "Couldn't run CreateZipFromSln: " + e.Message;
}
strCreateZipStdOut = p.StandardOutput.ReadToEnd ();
p.WaitForExit ();
if (p.ExitCode != 0)
{
Console.WriteLine("Error running CreateZipFromSln. Check the above output.");
return null;
}
if (strCreateZipStdOut != null)
{
p.Close ();
return strCreateZipStdOut;
}
p.Close ();
return null;
}
protected bool IsCreateZipAvailable()
{
string baseDirectory;
string strTmp;
try
{
System.Reflection.Assembly myAddIn = System.Reflection.Assembly.GetCallingAssembly();
baseDirectory = System.IO.Path.GetDirectoryName(myAddIn.Location);
strTmp = System.IO.Path.Combine(baseDirectory, "CreateZipFromSln.exe");
m_strCreateZipPath = (System.IO.File.Exists(strTmp) == true) ? strTmp : null;
if(m_strCreateZipPath != null)
return true;
}
catch(Exception)
{
m_strCreateZipPath = null;
return false;
}
return false;
}
}
}

Просмотреть файл

@ -0,0 +1,110 @@
using System;
using System.IO;
namespace Mfconsulting.Vsprj2make
{
/// <summary>
/// MonoLaunchHelper is a support class meant to facilitate
/// interaction between the Add-in's main class Connect, and
/// the monoLaunch executable.
/// </summary>
public class MonoLaunchHelper
{
private string m_MonoLaunchCPath;
public string MonoLaunchCPath
{
get { return m_MonoLaunchCPath; }
}
private string m_MonoLaunchWPath;
public string MonoLaunchWPath
{
get { return m_MonoLaunchWPath; }
}
public MonoLaunchHelper()
{
if (IsMonoLaunchAvailable() == false)
{
throw new Exception("monoLaunchC may not be installed");
}
}
protected bool IsMonoLaunchAvailable()
{
string baseDirectory;
string strTmp;
try
{
System.Reflection.Assembly myAddIn = System.Reflection.Assembly.GetCallingAssembly();
baseDirectory = System.IO.Path.GetDirectoryName(myAddIn.Location);
strTmp = System.IO.Path.Combine(baseDirectory, "monoLaunchC.exe");
m_MonoLaunchCPath = (System.IO.File.Exists(strTmp) == true) ? strTmp : null;
strTmp = System.IO.Path.Combine(baseDirectory, "monoLaunchW.exe");
m_MonoLaunchWPath = (System.IO.File.Exists(strTmp) == true) ? strTmp : null;
if (m_MonoLaunchCPath != null && m_MonoLaunchWPath != null)
return true;
}
catch (Exception)
{
m_MonoLaunchCPath = null;
return false;
}
return false;
}
/// <summary>
/// Returns the path to the Xsp.exe or Xsp2.exe based on the XspExeSelection
/// </summary>
public string GetXspExePath(int xspExeSelection)
{
RegistryHelper regHlpr = new RegistryHelper();
string strMonoBasePath;
string retVal = "";
if (xspExeSelection > 2 || xspExeSelection < 1)
throw new Exception("Invalid Xsp.exe selection. Value must be either 1 or 2");
strMonoBasePath = regHlpr.GetMonoBasePath();
if (xspExeSelection == 1)
{
// Handle when it is Xsp.exe
retVal = Path.Combine(
strMonoBasePath,
@"lib\mono\1.0\xsp.exe"
);
if (File.Exists(retVal) == true)
return retVal;
retVal = Path.Combine(
strMonoBasePath,
@"lib\xsp\1.0\xsp.exe"
);
if (File.Exists(retVal) == true)
return retVal;
}
if (xspExeSelection == 2)
{
// Handle when it is Xsp2.exe
retVal = Path.Combine(
strMonoBasePath,
@"lib\mono\2.0\xsp2.exe"
);
if (File.Exists(retVal) == true)
return retVal;
retVal = Path.Combine(
strMonoBasePath,
@"lib\xsp\2.0\xsp2.exe"
);
if (File.Exists(retVal) == true)
return retVal;
}
return retVal;
}
}
}

Просмотреть файл

@ -0,0 +1,499 @@
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
namespace Mfconsulting.Vsprj2make
{
/// <summary>
/// Summary description for OptionsDlg.
/// </summary>
public class OptionsDlg : System.Windows.Forms.Form
{
private Mfconsulting.Vsprj2make.RegistryHelper m_regH = null;
private string m_strMonoBasePath;
private System.Windows.Forms.Panel m_PanelTabs;
private System.Windows.Forms.Panel m_panelButtons;
private System.Windows.Forms.TabControl m_tabControl;
private System.Windows.Forms.TabPage m_tabPage1;
private System.Windows.Forms.TabPage m_tabPage2;
private System.Windows.Forms.Button m_btnOK;
private System.Windows.Forms.Button m_btnCancel;
private System.Windows.Forms.TabPage m_tabPage3;
private System.Windows.Forms.TabPage m_tabPage4;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TextBox m_edtMonoBasePath;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox m_edtDirectories;
private System.Windows.Forms.TextBox m_edtExtensions;
private System.Windows.Forms.NumericUpDown m_nupdwnCompressionLevel;
private System.Windows.Forms.TextBox m_edtLibPath;
private System.Windows.Forms.NumericUpDown m_nupdwnPort;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.RadioButton radioButton1;
private System.Windows.Forms.RadioButton radioButton2;
public string MonoBasePath
{
get { return m_strMonoBasePath; }
set { m_strMonoBasePath = value; }
}
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.Container components = null;
public OptionsDlg()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
// Read from the Mono Path from the registry
try
{
m_regH = new RegistryHelper();
}
catch(Exception exc)
{
MessageBox.Show(this, exc.Message,"Prj2make", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
UpdateData(false);
}
protected void UpdateData(bool bIsSaving)
{
if(bIsSaving)
{
// Saving values to registry
m_regH.CompressionLevel = (int)m_nupdwnCompressionLevel.Value;
m_regH.IgnoredDirectories = m_edtDirectories.Text;
m_regH.IgnoredExtensions = m_edtExtensions.Text;
m_regH.MonoLibPath = m_edtLibPath.Text;
m_regH.Port = (int)m_nupdwnPort.Value;
m_regH.XspExeSelection = (radioButton1.Checked == true ? 1 : 2);
}
else
{
// Loading values from registry
try
{
// Read from the Mono Path from the registry
m_edtMonoBasePath.Text = m_regH.GetMonoBasePath();
m_edtDirectories.Text = m_regH.IgnoredDirectories;
m_edtExtensions.Text = m_regH.IgnoredExtensions;
m_nupdwnCompressionLevel.Value = (decimal)m_regH.CompressionLevel;
m_edtLibPath.Text = m_regH.MonoLibPath;
m_nupdwnPort.Value = (decimal)m_regH.Port;
if(m_regH.XspExeSelection == 1)
radioButton1.Checked = true;
else
radioButton2.Checked = true;
}
catch(Exception exc)
{
MessageBox.Show(this, exc.Message,"Prj2make", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}
}
/// <summary>
/// Clean up any resources being used.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.m_PanelTabs = new System.Windows.Forms.Panel();
this.m_tabControl = new System.Windows.Forms.TabControl();
this.m_tabPage3 = new System.Windows.Forms.TabPage();
this.m_edtMonoBasePath = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.m_tabPage1 = new System.Windows.Forms.TabPage();
this.button2 = new System.Windows.Forms.Button();
this.m_edtDirectories = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.button1 = new System.Windows.Forms.Button();
this.m_edtExtensions = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.m_nupdwnCompressionLevel = new System.Windows.Forms.NumericUpDown();
this.label2 = new System.Windows.Forms.Label();
this.m_tabPage4 = new System.Windows.Forms.TabPage();
this.m_edtLibPath = new System.Windows.Forms.TextBox();
this.label6 = new System.Windows.Forms.Label();
this.m_tabPage2 = new System.Windows.Forms.TabPage();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.radioButton2 = new System.Windows.Forms.RadioButton();
this.radioButton1 = new System.Windows.Forms.RadioButton();
this.m_nupdwnPort = new System.Windows.Forms.NumericUpDown();
this.label5 = new System.Windows.Forms.Label();
this.m_panelButtons = new System.Windows.Forms.Panel();
this.m_btnCancel = new System.Windows.Forms.Button();
this.m_btnOK = new System.Windows.Forms.Button();
this.m_PanelTabs.SuspendLayout();
this.m_tabControl.SuspendLayout();
this.m_tabPage3.SuspendLayout();
this.m_tabPage1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.m_nupdwnCompressionLevel)).BeginInit();
this.m_tabPage4.SuspendLayout();
this.m_tabPage2.SuspendLayout();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.m_nupdwnPort)).BeginInit();
this.m_panelButtons.SuspendLayout();
this.SuspendLayout();
//
// m_PanelTabs
//
this.m_PanelTabs.Controls.Add(this.m_tabControl);
this.m_PanelTabs.Dock = System.Windows.Forms.DockStyle.Fill;
this.m_PanelTabs.Location = new System.Drawing.Point(0, 0);
this.m_PanelTabs.Name = "m_PanelTabs";
this.m_PanelTabs.Size = new System.Drawing.Size(456, 246);
this.m_PanelTabs.TabIndex = 0;
//
// m_tabControl
//
this.m_tabControl.Controls.Add(this.m_tabPage3);
this.m_tabControl.Controls.Add(this.m_tabPage1);
this.m_tabControl.Controls.Add(this.m_tabPage4);
this.m_tabControl.Controls.Add(this.m_tabPage2);
this.m_tabControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.m_tabControl.Location = new System.Drawing.Point(0, 0);
this.m_tabControl.Name = "m_tabControl";
this.m_tabControl.SelectedIndex = 0;
this.m_tabControl.Size = new System.Drawing.Size(456, 246);
this.m_tabControl.TabIndex = 0;
//
// m_tabPage3
//
this.m_tabPage3.Controls.Add(this.m_edtMonoBasePath);
this.m_tabPage3.Controls.Add(this.label1);
this.m_tabPage3.Location = new System.Drawing.Point(4, 22);
this.m_tabPage3.Name = "m_tabPage3";
this.m_tabPage3.Size = new System.Drawing.Size(448, 220);
this.m_tabPage3.TabIndex = 2;
this.m_tabPage3.Text = "Mono";
//
// m_edtMonoBasePath
//
this.m_edtMonoBasePath.Location = new System.Drawing.Point(16, 48);
this.m_edtMonoBasePath.Name = "m_edtMonoBasePath";
this.m_edtMonoBasePath.ReadOnly = true;
this.m_edtMonoBasePath.Size = new System.Drawing.Size(264, 20);
this.m_edtMonoBasePath.TabIndex = 1;
this.m_edtMonoBasePath.Text = "";
//
// label1
//
this.label1.Location = new System.Drawing.Point(16, 24);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(100, 16);
this.label1.TabIndex = 0;
this.label1.Text = "Mono Base Path";
//
// m_tabPage1
//
this.m_tabPage1.Controls.Add(this.button2);
this.m_tabPage1.Controls.Add(this.m_edtDirectories);
this.m_tabPage1.Controls.Add(this.label4);
this.m_tabPage1.Controls.Add(this.button1);
this.m_tabPage1.Controls.Add(this.m_edtExtensions);
this.m_tabPage1.Controls.Add(this.label3);
this.m_tabPage1.Controls.Add(this.m_nupdwnCompressionLevel);
this.m_tabPage1.Controls.Add(this.label2);
this.m_tabPage1.Location = new System.Drawing.Point(4, 22);
this.m_tabPage1.Name = "m_tabPage1";
this.m_tabPage1.Size = new System.Drawing.Size(448, 220);
this.m_tabPage1.TabIndex = 0;
this.m_tabPage1.Text = "Packaging";
//
// button2
//
this.button2.Location = new System.Drawing.Point(408, 128);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(24, 23);
this.button2.TabIndex = 8;
this.button2.Text = "...";
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// m_edtDirectories
//
this.m_edtDirectories.Location = new System.Drawing.Point(16, 128);
this.m_edtDirectories.Name = "m_edtDirectories";
this.m_edtDirectories.Size = new System.Drawing.Size(384, 20);
this.m_edtDirectories.TabIndex = 7;
this.m_edtDirectories.Text = "";
//
// label4
//
this.label4.Location = new System.Drawing.Point(16, 104);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(104, 23);
this.label4.TabIndex = 6;
this.label4.Text = "Ignored directories";
//
// button1
//
this.button1.Location = new System.Drawing.Point(408, 72);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(24, 23);
this.button1.TabIndex = 5;
this.button1.Text = "...";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// m_edtExtensions
//
this.m_edtExtensions.Location = new System.Drawing.Point(16, 72);
this.m_edtExtensions.Name = "m_edtExtensions";
this.m_edtExtensions.Size = new System.Drawing.Size(384, 20);
this.m_edtExtensions.TabIndex = 4;
this.m_edtExtensions.Text = "";
//
// label3
//
this.label3.Location = new System.Drawing.Point(16, 48);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(104, 23);
this.label3.TabIndex = 3;
this.label3.Text = "Ignored extensions";
//
// m_nupdwnCompressionLevel
//
this.m_nupdwnCompressionLevel.Location = new System.Drawing.Point(128, 16);
this.m_nupdwnCompressionLevel.Maximum = new System.Decimal(new int[] {
9,
0,
0,
0});
this.m_nupdwnCompressionLevel.Name = "m_nupdwnCompressionLevel";
this.m_nupdwnCompressionLevel.Size = new System.Drawing.Size(40, 20);
this.m_nupdwnCompressionLevel.TabIndex = 2;
this.m_nupdwnCompressionLevel.Value = new System.Decimal(new int[] {
4,
0,
0,
0});
//
// label2
//
this.label2.Location = new System.Drawing.Point(16, 16);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(104, 23);
this.label2.TabIndex = 0;
this.label2.Text = "Compression Level";
//
// m_tabPage4
//
this.m_tabPage4.Controls.Add(this.m_edtLibPath);
this.m_tabPage4.Controls.Add(this.label6);
this.m_tabPage4.Location = new System.Drawing.Point(4, 22);
this.m_tabPage4.Name = "m_tabPage4";
this.m_tabPage4.Size = new System.Drawing.Size(448, 220);
this.m_tabPage4.TabIndex = 3;
this.m_tabPage4.Text = "Prj2Make#";
//
// m_edtLibPath
//
this.m_edtLibPath.Location = new System.Drawing.Point(16, 48);
this.m_edtLibPath.Name = "m_edtLibPath";
this.m_edtLibPath.Size = new System.Drawing.Size(384, 20);
this.m_edtLibPath.TabIndex = 1;
this.m_edtLibPath.Text = "";
//
// label6
//
this.label6.Location = new System.Drawing.Point(16, 24);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(152, 16);
this.label6.TabIndex = 0;
this.label6.Text = "Lib path (for gmake makefile)";
//
// m_tabPage2
//
this.m_tabPage2.Controls.Add(this.groupBox1);
this.m_tabPage2.Controls.Add(this.m_nupdwnPort);
this.m_tabPage2.Controls.Add(this.label5);
this.m_tabPage2.Location = new System.Drawing.Point(4, 22);
this.m_tabPage2.Name = "m_tabPage2";
this.m_tabPage2.Size = new System.Drawing.Size(448, 220);
this.m_tabPage2.TabIndex = 1;
this.m_tabPage2.Text = "XSP";
//
// groupBox1
//
this.groupBox1.Controls.Add(this.radioButton2);
this.groupBox1.Controls.Add(this.radioButton1);
this.groupBox1.Location = new System.Drawing.Point(16, 56);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(176, 96);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "XSP selection";
//
// radioButton2
//
this.radioButton2.Location = new System.Drawing.Point(24, 56);
this.radioButton2.Name = "radioButton2";
this.radioButton2.TabIndex = 1;
this.radioButton2.Text = "XSP&2";
//
// radioButton1
//
this.radioButton1.Location = new System.Drawing.Point(24, 24);
this.radioButton1.Name = "radioButton1";
this.radioButton1.TabIndex = 0;
this.radioButton1.Text = "&XSP";
//
// m_nupdwnPort
//
this.m_nupdwnPort.Location = new System.Drawing.Point(56, 16);
this.m_nupdwnPort.Maximum = new System.Decimal(new int[] {
65534,
0,
0,
0});
this.m_nupdwnPort.Minimum = new System.Decimal(new int[] {
8102,
0,
0,
0});
this.m_nupdwnPort.Name = "m_nupdwnPort";
this.m_nupdwnPort.Size = new System.Drawing.Size(48, 20);
this.m_nupdwnPort.TabIndex = 1;
this.m_nupdwnPort.Value = new System.Decimal(new int[] {
8189,
0,
0,
0});
//
// label5
//
this.label5.Location = new System.Drawing.Point(16, 16);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(32, 23);
this.label5.TabIndex = 0;
this.label5.Text = "Port";
//
// m_panelButtons
//
this.m_panelButtons.Controls.Add(this.m_btnCancel);
this.m_panelButtons.Controls.Add(this.m_btnOK);
this.m_panelButtons.Dock = System.Windows.Forms.DockStyle.Bottom;
this.m_panelButtons.Location = new System.Drawing.Point(0, 190);
this.m_panelButtons.Name = "m_panelButtons";
this.m_panelButtons.Size = new System.Drawing.Size(456, 56);
this.m_panelButtons.TabIndex = 1;
//
// m_btnCancel
//
this.m_btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.m_btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.m_btnCancel.Location = new System.Drawing.Point(368, 16);
this.m_btnCancel.Name = "m_btnCancel";
this.m_btnCancel.TabIndex = 1;
this.m_btnCancel.Text = "Cancel";
//
// m_btnOK
//
this.m_btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.m_btnOK.Location = new System.Drawing.Point(280, 16);
this.m_btnOK.Name = "m_btnOK";
this.m_btnOK.TabIndex = 0;
this.m_btnOK.Text = "OK";
this.m_btnOK.Click += new System.EventHandler(this.m_btnOK_Click);
//
// OptionsDlg
//
this.AcceptButton = this.m_btnOK;
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.CancelButton = this.m_btnCancel;
this.ClientSize = new System.Drawing.Size(456, 246);
this.Controls.Add(this.m_panelButtons);
this.Controls.Add(this.m_PanelTabs);
this.Name = "OptionsDlg";
this.Text = "Prj2Make# Options";
this.Load += new System.EventHandler(this.OptionsDlg_Load);
this.m_PanelTabs.ResumeLayout(false);
this.m_tabControl.ResumeLayout(false);
this.m_tabPage3.ResumeLayout(false);
this.m_tabPage1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.m_nupdwnCompressionLevel)).EndInit();
this.m_tabPage4.ResumeLayout(false);
this.m_tabPage2.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.m_nupdwnPort)).EndInit();
this.m_panelButtons.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private void m_btnOK_Click(object sender, System.EventArgs e)
{
UpdateData(true);
this.Close();
}
private void OptionsDlg_Load(object sender, System.EventArgs e)
{
this.UpdateData(false);
}
private void button1_Click(object sender, System.EventArgs e)
{
MessageBox.Show(
this,
"Not implemented yet.",
"Prj2Make-Sharp",
MessageBoxButtons.OK,
MessageBoxIcon.Information
);
}
private void button2_Click(object sender, System.EventArgs e)
{
MessageBox.Show(
this,
"Not implemented yet.",
"Prj2Make-Sharp",
MessageBoxButtons.OK,
MessageBoxIcon.Information
);
}
}
}

Просмотреть файл

@ -0,0 +1,436 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 1.3
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">1.3</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1">this is my long string</data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
[base64 mime encoded serialized .NET Framework object]
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
[base64 mime encoded string representing a byte array form of the .NET Framework object]
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used forserialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>1.3</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="m_PanelTabs.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_PanelTabs.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_PanelTabs.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_PanelTabs.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="m_PanelTabs.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_PanelTabs.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabControl.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_tabControl.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_tabControl.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_tabControl.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabControl.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabControl.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="m_tabPage3.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_tabPage3.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_tabPage3.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_tabPage3.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage3.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="m_edtMonoBasePath.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_edtMonoBasePath.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_edtMonoBasePath.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_tabPage1.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_tabPage1.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_tabPage1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage1.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="button2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="button2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="button2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_edtDirectories.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_edtDirectories.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_edtDirectories.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label4.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label4.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="button1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="button1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="button1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_edtExtensions.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_edtExtensions.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_edtExtensions.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label3.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label3.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label3.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_nupdwnCompressionLevel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_nupdwnCompressionLevel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_nupdwnCompressionLevel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage4.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_tabPage4.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_tabPage4.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_tabPage4.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage4.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage4.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="m_edtLibPath.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_edtLibPath.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_edtLibPath.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label6.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label6.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label6.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage2.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_tabPage2.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_tabPage2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_tabPage2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_tabPage2.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="groupBox1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="groupBox1.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="groupBox1.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="groupBox1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="groupBox1.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="groupBox1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="radioButton2.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radioButton2.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="radioButton2.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="radioButton1.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="radioButton1.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="radioButton1.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_nupdwnPort.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_nupdwnPort.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_nupdwnPort.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label5.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="label5.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="label5.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_panelButtons.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_panelButtons.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_panelButtons.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_panelButtons.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="m_panelButtons.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="m_panelButtons.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_btnCancel.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_btnCancel.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_btnCancel.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_btnOK.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="m_btnOK.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="m_btnOK.Modifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
<data name="$this.Locked" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Name">
<value>OptionsDlg</value>
</data>
<data name="$this.Language" type="System.Globalization.CultureInfo, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>(Default)</value>
</data>
<data name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.Localizable" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</data>
<data name="$this.GridSize" type="System.Drawing.Size, System.Drawing, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>8, 8</value>
</data>
<data name="$this.DrawGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.TrayHeight" type="System.Int32, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>80</value>
</data>
<data name="$this.SnapToGrid" type="System.Boolean, mscorlib, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</data>
<data name="$this.DefaultModifiers" type="System.CodeDom.MemberAttributes, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>Private</value>
</data>
</root>

Просмотреть файл

@ -0,0 +1,174 @@
using System;
using System.Diagnostics;
namespace Mfconsulting.Vsprj2make
{
/// <summary>
/// Summary description for Prj2MakeHelper.
/// </summary>
public class Prj2MakeHelper
{
private string m_strPrj2makePath;
public Prj2MakeHelper()
{
if(IsPrj2MakeAvailable() == false)
{
throw new Exception("Prj2make may not be installed");
}
}
public string CreateMdFiles(string strInputFilePath)
{
string strPrj2MakeStdOut;
System.Text.StringBuilder strbArgLine = new System.Text.StringBuilder();
char []carSpecialCharacters = {' ','\t', ',', '*', '%', '!'};
MonoLaunchHelper launchHlpr = new MonoLaunchHelper();
// Build the command line parameters
strbArgLine.AppendFormat("\"{0}\" ", m_strPrj2makePath);
strbArgLine.Append("--csproj2prjx ");
if(strInputFilePath.IndexOfAny(carSpecialCharacters)== -1)
{
strbArgLine.Append(strInputFilePath);
}
else
{
strbArgLine.AppendFormat("\"{0}\"",
strInputFilePath);
}
ProcessStartInfo pi = new ProcessStartInfo();
pi.FileName = launchHlpr.MonoLaunchWPath;
// pi.FileName = m_strPrj2makePath;
pi.RedirectStandardOutput = true;
pi.UseShellExecute = false;
pi.CreateNoWindow = true;
pi.Arguments = strbArgLine.ToString();
Process p = null;
try
{
p = Process.Start (pi);
}
catch (Exception e)
{
Console.WriteLine("Couldn't run prj2makesharpWin32: " + e.Message);
return null;
}
strPrj2MakeStdOut = p.StandardOutput.ReadToEnd ();
p.WaitForExit ();
if (p.ExitCode != 0)
{
Console.WriteLine("Error running prj2makesharpWin32. Check the above output.");
return null;
}
if (strPrj2MakeStdOut != null)
{
p.Close ();
return strPrj2MakeStdOut;
}
p.Close ();
return null;
}
public string CreateMakeFile(bool IsCsc, bool IsNmake, string strInputFilePath)
{
string strPrj2MakeStdOut;
System.Text.StringBuilder strbArgLine = new System.Text.StringBuilder();
char []carSpecialCharacters = {' ','\t', ',', '*', '%', '!'};
MonoLaunchHelper launchHlpr = new MonoLaunchHelper();
// Build the command line parameters
strbArgLine.AppendFormat("\"{0}\" ", m_strPrj2makePath);
if(IsCsc == true)
{
strbArgLine.Append("-c ");
}
if(IsNmake == true)
{
strbArgLine.Append("-n ");
}
if(strInputFilePath.IndexOfAny(carSpecialCharacters)== -1)
{
strbArgLine.Append(strInputFilePath);
}
else
{
strbArgLine.AppendFormat("\"{0}\"",
strInputFilePath);
}
ProcessStartInfo pi = new ProcessStartInfo();
pi.FileName = launchHlpr.MonoLaunchWPath;
pi.RedirectStandardOutput = true;
pi.UseShellExecute = false;
pi.CreateNoWindow = true;
pi.Arguments = strbArgLine.ToString();
Process p = null;
try
{
p = Process.Start (pi);
}
catch (Exception e)
{
Console.WriteLine("Couldn't run prj2makesharpWin32: " + e.Message);
return null;
}
strPrj2MakeStdOut = p.StandardOutput.ReadToEnd ();
p.WaitForExit ();
if (p.ExitCode != 0)
{
Console.WriteLine("Error running prj2makesharpWin32. Check the above output.");
return null;
}
if (strPrj2MakeStdOut != null)
{
p.Close ();
return strPrj2MakeStdOut;
}
p.Close ();
return null;
}
protected bool IsPrj2MakeAvailable()
{
string baseDirectory;
string strMonoBasePath;
string strTmp;
RegistryHelper regH = null;
try
{
regH = new RegistryHelper();
// This acts as a test to see if mono is installed
strMonoBasePath = regH.GetMonoBasePath();
System.Reflection.Assembly myAddIn = System.Reflection.Assembly.GetCallingAssembly();
baseDirectory = System.IO.Path.GetDirectoryName(myAddIn.Location);
strTmp = System.IO.Path.Combine(baseDirectory, "prj2makesharpWin32.exe");
m_strPrj2makePath = (System.IO.File.Exists(strTmp) == true) ? strTmp : null;
if(m_strPrj2makePath != null)
return true;
}
catch(Exception)
{
m_strPrj2makePath = null;
return false;
}
return false;
}
}
}

Просмотреть файл

@ -0,0 +1,204 @@
using System;
namespace Mfconsulting.Vsprj2make
{
/// <summary>
/// Summary description for RegistryHelper.
/// </summary>
public class RegistryHelper
{
private Microsoft.Win32.RegistryKey m_MonoSoftwareKey = null;
private Microsoft.Win32.RegistryKey m_GtkSharpSoftwareKey = null;
private Microsoft.Win32.RegistryKey m_Prj2MakeSoftwareKey = null;
public Microsoft.Win32.RegistryKey MonoSoftwareKey
{
get { return m_MonoSoftwareKey; }
}
public Microsoft.Win32.RegistryKey GtkSharpSoftwareKey
{
get { return m_GtkSharpSoftwareKey; }
}
public Microsoft.Win32.RegistryKey Prj2MakeSoftwareKey
{
get { return m_Prj2MakeSoftwareKey; }
}
/// <summary>
/// Default constructor
/// </summary>
public RegistryHelper()
{
m_Prj2MakeSoftwareKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
@"SOFTWARE\Mono\MonoAddin05\settings"
);
if(m_Prj2MakeSoftwareKey == null)
{
throw new Exception("Prj2Make Add-in may not be installed correctly.");
}
}
#region Packaging options
public int CompressionLevel
{
get
{
int nRetVal =
(int)Prj2MakeSoftwareKey.GetValue("CompressionLevel", 6);
return nRetVal;
}
set { Prj2MakeSoftwareKey.SetValue("CompressionLevel", value); }
}
public string IgnoredExtensions
{
get
{
return (string)Prj2MakeSoftwareKey.GetValue(
"IgnoredExtension",
".suo;.cvsignore;.vssscc;.vspscc"
);
}
set { Prj2MakeSoftwareKey.SetValue("IgnoredExtension", value); }
}
public string IgnoredDirectories
{
get
{
return (string)Prj2MakeSoftwareKey.GetValue(
"IgnoredDirectories",
"CVS;obj;.svn"
);
}
set { Prj2MakeSoftwareKey.SetValue("IgnoredDirectories", value); }
}
#endregion
#region XSP settings
public int Port
{
get { return (int)m_Prj2MakeSoftwareKey.GetValue("XSPPort", 8189); }
set { m_Prj2MakeSoftwareKey.SetValue("XSPPort", value); }
}
public int XspExeSelection
{
get { return (int)m_Prj2MakeSoftwareKey.GetValue("XspExeSelection", 2); }
set { m_Prj2MakeSoftwareKey.SetValue("XspExeSelection", value); }
}
#endregion
#region Prj2make-Sharp Makefile and MD file creation
public string MonoLibPath
{
get
{
return (string)Prj2MakeSoftwareKey.GetValue("MonoLibPath",
"/usr/lib/mono/2.0,/usr/lib/mono/gtk-sharp-2.0");
}
set { Prj2MakeSoftwareKey.SetValue("MonoLibPath", value); }
}
#endregion
#region Mono Key
/// <summary>
/// Tries to pupolate the Mono Registry key
/// </summary>
private void LoadMonoKey()
{
Microsoft.Win32.RegistryKey MonoRoot = null;
MonoRoot = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Novell\Mono"
);
if(MonoRoot == null)
{
throw new Exception("Mono may not be installed correctly");
}
string strMonoVersion = (string)MonoRoot.GetValue("DefaultCLR");
m_MonoSoftwareKey = MonoRoot.OpenSubKey(strMonoVersion);
if(this.m_MonoSoftwareKey == null)
{
throw new Exception("Mono may not be installed correctly");
}
}
public string GetDefaultClr()
{
Microsoft.Win32.RegistryKey MonoRoot = null;
MonoRoot = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Novell\Mono"
);
if(MonoRoot == null)
{
throw new Exception("Mono may not be installed correctly");
}
return (string)MonoRoot.GetValue("DefaultCLR");
}
public void SetDefaultClr(string monoVersionValue)
{
Microsoft.Win32.RegistryKey MonoRoot = null;
MonoRoot = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Novell\Mono", true
);
if(MonoRoot == null)
{
throw new Exception("Mono may not be installed correctly");
}
MonoRoot.SetValue("DefaultCLR", monoVersionValue);
}
public string[] GetMonoVersions()
{
Microsoft.Win32.RegistryKey MonoRoot = null;
MonoRoot = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(
@"SOFTWARE\Novell\Mono"
);
if(MonoRoot == null)
{
throw new Exception("A Mono installation could not be detected in your system. Mono may not be installed.");
}
return MonoRoot.GetSubKeyNames();
}
/// <summary>
/// Optains the base path where the Mono installation resides
/// </summary>
/// <returns>Returns a string containing the path to
/// where the Mono installation resides
/// </returns>
public string GetMonoBasePath()
{
string strRetVal;
if(m_MonoSoftwareKey == null)
{
try
{
LoadMonoKey();
}
catch(Exception exc)
{
throw exc;
}
}
strRetVal = m_MonoSoftwareKey.GetValue("SdkInstallRoot", "").ToString();
return strRetVal;
}
#endregion
}
}

Двоичные данные
vsAddIn2005/monoaddin/codekey/vsprj2make.snk Normal file

Двоичный файл не отображается.

Двоичные данные
vsAddIn2005/monoaddin/monoaddin.AddIn Normal file

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,116 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{4441F814-D559-4C3F-9250-650709C79BB0}</ProjectGuid>
<OutputType>Library</OutputType>
<StartupObject>
</StartupObject>
<NoStandardLibraries>false</NoStandardLibraries>
<AssemblyName>monoaddin</AssemblyName>
<RootNamespace>Mfconsulting.Vsprj2make</RootNamespace>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<WarningLevel>4</WarningLevel>
<IncrementalBuild>false</IncrementalBuild>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugSymbols>false</DebugSymbols>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<EnableUnmanagedDebugging>false</EnableUnmanagedDebugging>
<DefineConstants>TRACE</DefineConstants>
<WarningLevel>4</WarningLevel>
<IncrementalBuild>false</IncrementalBuild>
</PropertyGroup>
<ItemGroup>
<Reference Include="Extensibility, Version=7.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="Connect.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="CreateZipHelper.cs" />
<Compile Include="MonoLaunchHelper.cs" />
<Compile Include="OptionsDlg.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Prj2MakeHelper.cs" />
<Compile Include="RegistryHelper.cs" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="CommandBar.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="OptionsDlg.resx">
<DependentUpon>OptionsDlg.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<COMReference Include="EnvDTE">
<Guid>{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}</Guid>
<VersionMajor>8</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
<COMReference Include="EnvDTE80">
<Guid>{1A31287A-4D7D-413E-8E32-3B374931BD89}</Guid>
<VersionMajor>8</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
<COMReference Include="Microsoft.VisualStudio.CommandBars">
<Guid>{1CBA492E-7263-47BB-87FE-639000619B15}</Guid>
<VersionMajor>8</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
<COMReference Include="stdole">
<Guid>{00020430-0000-0000-C000-000000000046}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>0</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
</COMReference>
</ItemGroup>
<ItemGroup>
<Content Include="monoaddin.AddIn" />
</ItemGroup>
<ItemGroup>
<None Include="ClassDiagram1.cd" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
<PropertyGroup>
<PreBuildEvent>
</PreBuildEvent>
<PostBuildEvent>
</PostBuildEvent>
</PropertyGroup>
<ProjectExtensions>
<VisualStudio>
</VisualStudio>
</ProjectExtensions>
</Project>

Двоичные данные
vsAddIn2005/reflib/ICSharpCode.SharpZipLib.dll Normal file

Двоичный файл не отображается.

Двоичные данные
vsAddIn2005/reflib/Mono.GetOptions.dll Normal file

Двоичный файл не отображается.