VS2008 自定义向导的default.js设置(DLL文件)

function OnFinish(selProj, selObj)
{
    try
    {
        var strProjectPath = wizard.FindSymbol(‘PROJECT_PATH‘);
        var strProjectName = wizard.FindSymbol(‘PROJECT_NAME‘);

        selProj = CreateCustomProject(strProjectName, strProjectPath);
        AddConfig(selProj, strProjectName);
        AddFilters(selProj);

        var InfFile = CreateCustomInfFile();
        AddFilesToCustomProj(selProj, strProjectName, strProjectPath, InfFile);
        PchSettings(selProj);
        InfFile.Delete();

        selProj.Object.Save();
    }
    catch(e)
    {
        if (e.description.length != 0)
            SetErrorInfo(e);
        return e.number
    }
}

function CreateCustomProject(strProjectName, strProjectPath)
{
    try
    {
        var strProjTemplatePath = wizard.FindSymbol(‘PROJECT_TEMPLATE_PATH‘);
        var strProjTemplate = ‘‘;
        strProjTemplate = strProjTemplatePath + ‘\\default.vcproj‘;

        var Solution = dte.Solution;
        var strSolutionName = "";
        if (wizard.FindSymbol("CLOSE_SOLUTION"))
        {
            Solution.Close();
            strSolutionName = wizard.FindSymbol("VS_SOLUTION_NAME");
            if (strSolutionName.length)
            {
                var strSolutionPath = strProjectPath.substr(0, strProjectPath.length - strProjectName.length);
                Solution.Create(strSolutionPath, strSolutionName);
            }
        }

        var strProjectNameWithExt = ‘‘;
        strProjectNameWithExt = strProjectName + ‘.vcproj‘;

        var oTarget = wizard.FindSymbol("TARGET");
        var prj;
        if (wizard.FindSymbol("WIZARD_TYPE") == vsWizardAddSubProject)  // vsWizardAddSubProject
        {
            var prjItem = oTarget.AddFromTemplate(strProjTemplate, strProjectNameWithExt);
            prj = prjItem.SubProject;
        }
        else
        {
            prj = oTarget.AddFromTemplate(strProjTemplate, strProjectPath, strProjectNameWithExt);
        }
        var fxtarget = wizard.FindSymbol("TARGET_FRAMEWORK_VERSION");
        if (fxtarget != null && fxtarget != "")
        {
            fxtarget = fxtarget.split(‘.‘, 2);
            if (fxtarget.length == 2)
            prj.Object.TargetFrameworkVersion = parseInt(fxtarget[0]) * 0x10000 + parseInt(fxtarget[1])
        }
        return prj;
    }
    catch(e)
    {
        throw e;
    }
}

function AddFilters(proj)
{
    try
    {
        // 将文件夹添加到项目
//        var strSrcFilter = wizard.FindSymbol(‘SOURCE_FILTER‘);
//        var group = proj.Object.AddFilter(‘源文件‘);
//        group.Filter = strSrcFilter;
        proj.Object.AddFilter(‘源文件‘).Filter = ‘cpp;c;def‘;
        proj.Object.AddFilter(‘头文件‘).Filter = ‘hpp;h‘;
        proj.Object.AddFilter(‘资源文件‘).Filter = ‘ico;rc;bin‘;
     }
    catch(e)
    {
        throw e;
    }
}

function AddConfig(proj, strProjectName)
{
    try
    {
        var config = proj.Object.Configurations(‘Debug‘);
        config.CharacterSet = charSetUNICODE;
        config.ConfigurationType = typeDynamicLibrary;
        config.IntermediateDirectory = ‘$(ConfigurationName)‘;
        config.OutputDirectory = ‘$(ConfigurationName)‘;

        var CLTool = config.Tools(‘VCCLCompilerTool‘);
        // TODO: 添加编译器设置
        CLTool.RuntimeLibrary = rtMultiThreadedDebugDLL;

        var strDefines = CLTool.PreprocessorDefinitions;
        if (strDefines != "") strDefines += ";";
        strDefines += GetPlatformDefine(config);
        strDefines += "_DEBUG";
        strDefines += ";_WINDOWS;_USRDLL;";
        var strExports = strProjectName.toString().toUpperCase() + "_EXPORTS";
        strDefines += strExports;
        CLTool.PreprocessorDefinitions = strDefines;
        CLTool.DebugInformationFormat = debugEditAndContinue;

        var LinkTool = config.Tools(‘VCLinkerTool‘);
        // TODO: 添加链接器设置
        LinkTool.ModuleDefinitionFile = strProjectName+".def";
        LinkTool.GenerateDebugInformation = true;
        LinkTool.SubSystem = subSystemWindows;

        config = proj.Object.Configurations(‘Release‘);
        config.IntermediateDirectory = ‘$(ConfigurationName)‘;
        config.OutputDirectory = ‘$(ConfigurationName)‘;
        config.CharacterSet = charSetUNICODE;
        config.ConfigurationType = typeDynamicLibrary;

        var CLTool = config.Tools(‘VCCLCompilerTool‘);
        // TODO: 添加编译器设置
        CLTool.RuntimeLibrary = rtMultiThreadedDLL;

        var strDefines = CLTool.PreprocessorDefinitions;
        if (strDefines != "") strDefines += ";";
        strDefines += GetPlatformDefine(config);
        strDefines += "NDEBUG"
        strDefines += ";_WINDOWS;_USRDLL;";
        var strExports = strProjectName.toString().toUpperCase() + "_EXPORTS";
        strDefines += strExports;
        CLTool.PreprocessorDefinitions = strDefines;
        CLTool.DebugInformationFormat = debugEnabled;

        var LinkTool = config.Tools(‘VCLinkerTool‘);
        // TODO: 添加链接器设置
        LinkTool.ModuleDefinitionFile = strProjectName+".def";
        LinkTool.GenerateDebugInformation = true;
        LinkTool.SubSystem = subSystemWindows;
    }
    catch(e)
    {
        throw e;
    }
}

function PchSettings(proj)
{
    // TODO: 指定 pch 设置
}

function DelFile(fso, strWizTempFile)
{
    try
    {
        if (fso.FileExists(strWizTempFile))
        {
            var tmpFile = fso.GetFile(strWizTempFile);
            tmpFile.Delete();
        }
    }
    catch(e)
    {
        throw e;
    }
}

function CreateCustomInfFile()
{
    try
    {
        var fso, TemplatesFolder, TemplateFiles, strTemplate;
        fso = new ActiveXObject(‘Scripting.FileSystemObject‘);

        var TemporaryFolder = 2;
        var tfolder = fso.GetSpecialFolder(TemporaryFolder);
        var strTempFolder = tfolder.Drive + ‘\\‘ + tfolder.Name;

        var strWizTempFile = strTempFolder + "\\" + fso.GetTempName();

        var strTemplatePath = wizard.FindSymbol(‘TEMPLATES_PATH‘);
        var strInfFile = strTemplatePath + ‘\\Templates.inf‘;
        wizard.RenderTemplate(strInfFile, strWizTempFile);

        var WizTempFile = fso.GetFile(strWizTempFile);
        return WizTempFile;
    }
    catch(e)
    {
        throw e;
    }
}

function GetTargetName(strName, strProjectName)
{
    try
    {
        // TODO: 基于模板文件名设置呈现文件的名称
        var strTarget = strName;

        if (strName == ‘readme.txt‘)
            strTarget = ‘ReadMe.txt‘;

        if (strName == ‘MoonDriver.cpp‘)
            strTarget =strProjectName+ ‘.cpp‘;
        if (strName == ‘MoonDriver.def‘)
            strTarget =strProjectName+ ‘.def‘;
        if (strName == ‘MoonDriver.h‘)
            strTarget =strProjectName+ ‘.h‘;

        return strTarget;
    }
    catch(e)
    {
        throw e;
    }
}

function AddFilesToCustomProj(proj, strProjectName, strProjectPath, InfFile)
{
    try
    {
        var projItems = proj.ProjectItems

        var strTemplatePath = wizard.FindSymbol(‘TEMPLATES_PATH‘);

        var strTpl = ‘‘;
        var strName = ‘‘;

        var strTextStream = InfFile.OpenAsTextStream(1, -2);
        while (!strTextStream.AtEndOfStream)
        {
            strTpl = strTextStream.ReadLine();
            if (strTpl != ‘‘)
            {
                strName = strTpl;
                var strTarget = GetTargetName(strName, strProjectName);
                var strTemplate = strTemplatePath + ‘\\‘ + strTpl;
                var strFile = strProjectPath + ‘\\‘ + strTarget;

                var bCopyOnly = false;  //“true”仅将文件从 strTemplate 复制到 strTarget,而不对项目进行呈现/添加
                var strExt = strName.substr(strName.lastIndexOf("."));
                if(strExt==".bmp" || strExt==".ico" || strExt==".gif" || strExt==".rtf" || strExt==".css"|| strExt==".lib")
                    bCopyOnly = true;
                wizard.RenderTemplate(strTemplate, strFile, bCopyOnly);
                proj.Object.AddFile(strFile);
            }
        }
        strTextStream.Close();
    }
    catch(e)
    {
        throw e;
    }
}

VS2008 自定义向导的default.js设置(DLL文件)

时间: 2024-10-08 20:27:15

VS2008 自定义向导的default.js设置(DLL文件)的相关文章

vs2008设置dll、lib库的输出路径

vs2008中,有些项目上的功能是要生产库文件给其他项目调用的,以下是一些设置库文件(x.dll和x.lib)输出路径的方法. 设置x.dll 输出路径方法是在右键项目的"属性"->连接器->常规, 然后在常规属性界面中的 "输出文件" 中填入自己想要x.dll文件的输出路径. 设置x.lib 输出路径方法是在右键项目的"属性"->连接器->高级, 然后在高级属性界面中的 "导入库" 项中填入自己想要x

VS2005,VS2008,VS2010将ASP.NET网站编译成一个DLL文件

分类: C#/ASP.Net 2012-10-09 22:19 1342人阅读 评论(1) 收藏 举报 dllasp.net2010deploymentwebsiteassembly VS在发布网站时,bin目录里为所有cs生成的dll文件每次都是随机命名的,如:App_Web_xxxxxxxx.dll(xxxxxxx是 8个小写的字母和数字组成的字符串,随机的),这样对更新 Live 站点很不方便,因为动态库名变了,涉及到每一个 aspx 文件每次都重新更改了对库的引用声明:        

js设置下拉框选中后change事件无效解决

下拉框部分代码: <select id="bigType"> <option value="">请选择</option> <option value="1">xiamen</option> <option value="2">beijing</option> </select> <select id="smallTy

运用JS设置cookie、读取cookie、删除cookie

运用JS设置cookie.读取cookie.删除cookie JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假 设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来 引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭

JS设置cookie、读取cookie、删除cookie

Js操作Cookie总结(设置,读取,删除),工作中经常会用到的哦!下面是详细代码,如有错误,请留言指正! JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生

JS设置cookie

cookie 与 session 是网页开发中常用的信息存储方式.Cookie是在客户端开辟的一块可存储用户信息的地方:Session是在服务器内存中开辟的一块存储用户信息的地方. JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的. 而cookie是运行在客户端的,所以可以用JS来设置cookie. 首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式.各个cookie

运用JS设置cookie、读取cookie、删除cookiev

JS设置cookie: 假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为: document.cookie="name="+username; JS读取cookie: 假设cookie中存储的内容为:name=jack;password=123 则在B页面中获取变量username的值的JS代码如下: var username=document.cookie.split(";")

js调DLL类库中的方法实现(非com组件形式)

1.首先,创建一个Web空项目 2.添加一个html或aspx页面 3.页面代码如所示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><

基于ligerUI+jbpm5自定义表单+Node.js的J2ee大型金融项目《财务预算系统》开发全程实录

基于ligerUI+jbpm5自定义表单+Node.js的J2ee大型金融项目<财务预算系统>开发全程实录 对这个课程感兴趣的可以加我雾非雾QQ2748165793, 讲师介绍: 3年对日外包电信行业软件专家,六年项目开发经验,二年高端培训机构教学管理经验,惠普全球研发中心骨干.现任北风金牌合作讲师. 项目经验丰富: 日本电信NTT DATA SYSTEM 日本航空ANA SYSTEM 日本TAHOO BB 在线信息平台 惠普DDC--InternalManagement SYSTEM(内部管