zoukankan      html  css  js  c++  java
  • Win10或Win8下ObjectARX2015 Wizard向导创建项目失败解决方法

    [原创]objectARX 2015 Wizard安装向导在Win8/win10下无法创建项目的解决方法总结
    by edata @2017-5-1
    objectARX 2015 Wizard安装向导在Win8/win10下无法创建项目的解决方法
    因为Win8/Win10对系统盘(默认c:)使用了高级权限管理,所以在此盘下操作文件的修改工作都需要管理员权限才行。
    基于这个原因,导致非管理员安装Wizard无法创建arx项目,经过多方查找和研究,终于找到一个可行的办法。
    我在win10+vs2012+objectarx2015通过测试,其他版本无法创建的问题,应该是类似的。
    方式一:给(objectARX 2015 Wizard.msi)msi文件右键添加以管理员运行的菜单。
    (参考资料:http://www.52windows8.com/use-of-skills/8197.html)
    新建一个文本文件,并保存为 MSI右键添加管理员运行.reg 的注册表文件,输入一下内容,保存后,双击这个 文件执行导入注册表。


    Windows Registry Editor Version 5.00


    [HKEY_CLASSES_ROOTMsi.Packageshell unas]
    @="以管理员运行"


    [HKEY_CLASSES_ROOTMsi.Packageshell unascommand]
    @="msiexec /i "%1""




    成功导入改注册表文件之后,再 objectARX 2015 Wizard.msi 文件上右键 以管理员运行 执行安装。
    安装完毕后,应该就可以正常使用向导生成了。


    方式二:(理论阶段,还未验证)
    基于win8/win10的权限非管理员,导致安装了objectARX 2015 Wizard.msi,无法创建项目文件。
    安装Wizard之后,在vc模板中能看到Arx的两个向导名称(我的能看到2015+2012两个向导),这个时候我们可以检测vs的目录的Wizard目录下的文件。
    默认路径:C:Program Files (x86)Microsoft Visual Studio 11.0VCvcprojectsAutodesk
    将 ArxAppWiz.vsz 复制到桌面或者C:盘以外的地方(如d:),因为直接打开也无法因为权限无法保存,所以复制再改,然后用记事本打开这个文件。


    可能是如下内容


    VSWIZARD 7.0
    Wizard=VsWizard.VsWizardEngine.[WIZVERSION]
    Param="WIZARD_NAME = ArxAppWiz"
    Param="ABSOLUTE_PATH = [TARGETDIR]ArxAppWiz"
    Param="FALLBACK_LCID = 1033"


    正常情况下文件应该是


    VSWIZARD 7.0
    Wizard=VsWizard.VsWizardEngine.11.0
    Param="WIZARD_NAME = ArxAppWiz"
    Param="ABSOLUTE_PATH = C:Program Files (x86)AutodeskObjectARX 2015 WizardsArxAppWiz"
    Param="FALLBACK_LCID = 1033"


    我们可以看到没有用管理安装的文件没有改掉关键项,[WIZVERSION][TARGETDIR]这两个还是临时名。
    简单的说第二行是向导的使用的vs向导版本,这里是vs2012,所以是VsWizard.VsWizardEngine.11.0,vs2013应该是12.0,vs2015是14.0,vs2017没研究,好像改成了注册表的clsid,没有深入研究。
    第三行是向导的路径,这里是2015的默认路径,新版向导安装的时候是无法更改这个路径的。


    改了这个文件,保存后再复制到原来的目录。(C:Program Files (x86)Microsoft Visual Studio 11.0VCvcprojectsAutodesk)


    下面还需要改一下arx的配置模板文件,

    默认路径C:Program Files (x86)AutodeskObjectARX 2015 Wizards

    同样复制 Autodesk.arx-2015.props 这个文件(默认会隐藏.props后缀)到桌面或者d:盘
    记事本打开文件
    找到并修改 <ArxSdkDir>C:ObjectARX</ArxSdkDir> 为 <ArxSdkDir>C:ObjectARX 2015</ArxSdkDir>
    C:ObjectARX 2015就是你的ObjectARX SDK包解压的位置,默认是这个目录,如果你解压到了其他位置,就要修改成你的正确位置。
    下面还有其他类似的项都需要修改。
    这样就应该可以正常创建ARX项目文件了。
    如果使用arx2012的向导,也就是第二个向导,同样需要修改 Autodesk.arx-2012.props 这个文件.方法一样,路径改为arx2012的sdk路径即可。


    友情提示:
    使用vs2012+Arx2015向导,和在vs2010上使用的arx2012向导生成的项目有些不同,包含目录和库目录可以不用修改,项目创建成功后,如果是cad2015arx项目就能直接编译,无需更改配置。
    如果是需要其他版本的arx,也可以和vs2010一样,修改平台集,再修改成相应版本的包含目录和库目录。


    附:这里贴上Autodesk.arx-2015.props的修改后的详细内容,可以对比参考。


    <?xml version="1.0" encoding="utf-8"?>
    <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">


    <!-- http://msdn.microsoft.com/en-us/library/ms171458.aspx -->
    <PropertyGroup>
    <_ProjectFileVersion>20.0.0.1</_ProjectFileVersion>
    <_PropertySheetDisplayName>ObjectARX 2015</_PropertySheetDisplayName>
    </PropertyGroup>

    <PropertyGroup>
    <AcadDir Condition="'$(Platform)'=='x64'">C:Program FilesAutodeskAutoCAD 2015</AcadDir>
    <AcadDir Condition="'$(Platform)'=='Win32'">C:Program FilesAutodeskAutoCAD 2015</AcadDir>
    <AcadExe Condition="'$(ArxAppType)'=='dbx' or '$(ArxAppType)'=='dbxnet' or '$(ArxAppType)'=='arx' or '$(ArxAppType)'=='arxnet'">acad.exe</AcadExe>
    <AcadExe Condition="'$(ArxAppType)'=='crx' or '$(ArxAppType)'=='crxnet'">accoreconsole.exe</AcadExe>
    <ArxSdkDir>C:ObjectARX 2015</ArxSdkDir>


    <ArxSdkIncs Condition="'$(Platform)'=='Win32'">$(ArxSdkDir)inc;$(ArxSdkDir)inc-win32</ArxSdkIncs>
    <ArxSdkIncs Condition="'$(Platform)'=='x64'">$(ArxSdkDir)inc;$(ArxSdkDir)inc-x64</ArxSdkIncs>
    <ArxHlrIncs>$(ArxSdkDir)utilsHlrApiinc</ArxHlrIncs>
    <ArxAmodelerIncs>$(ArxSdkDir)utilsamodelerinc</ArxAmodelerIncs>
    <ArxBrepIncs>$(ArxSdkDir)utilsrepinc</ArxBrepIncs>
    <ArxAtilIncs>$(ArxSdkDir)utilsAtilInc</ArxAtilIncs>


    <ArxSdkLibs Condition="'$(Platform)'=='Win32'">$(ArxSdkDir)lib-win32</ArxSdkLibs>
    <ArxSdkLibs Condition="'$(Platform)'=='x64'">$(ArxSdkDir)lib-x64</ArxSdkLibs>
    <ArxHlrLibs>$(ArxSdkDir)utilsHlrApilib-$(Platform)</ArxHlrLibs>
    <ArxAmodelerLibs>$(ArxSdkDir)utilsamodelerlib-$(Platform)</ArxAmodelerLibs>
    <ArxBrepLibs>$(ArxSdkDir)utilsreplib-$(Platform)</ArxBrepLibs>
    <ArxAtilLibs>$(ArxSdkDir)utilsAtilLib-$(Platform)</ArxAtilLibs>
    <ArxSDKVersion>20.0</ArxSDKVersion>
    <ArxSDKPlatform>v110</ArxSDKPlatform>
    </PropertyGroup>


    <ImportGroup Label="PropertySheets">
    <Import Condition="'$(ArxAppType)'=='dbx' or '$(ArxAppType)'=='dbxnet'" Project="$(ArxSdkDir)incdbx.props" />
    <Import Condition="'$(ArxAppType)'=='crx' or '$(ArxAppType)'=='crxnet'" Project="$(ArxSdkDir)inccrx.props" />
    <Import Condition="'$(ArxAppType)'=='arx' or '$(ArxAppType)'=='arxnet'" Project="$(ArxSdkDir)incarx.props" />
    <Import Condition="'$(Configuration)'=='Release'" Project="$(ArxSdkDir)inc xsdk_Releasecfg.props" />
    <Import Condition="'$(Configuration)'=='Debug'" Project="$(ArxSdkDir)inc xsdk_Debugcfg.props" />
    <Import Condition="'$(ArxAppType)'=='dbxnet' or '$(ArxAppType)'=='crxnet' or '$(ArxAppType)'=='arxnet'" Project="Autodesk.arx-2015-net.props" />
    </ImportGroup>

    <PropertyGroup>
    <!-- ExecutablePath>$(ExecutablePath)</ExecutablePath -->
    <IncludePath>$(ArxSdkIncs);$(ArxHlrIncs);$(ArxAmodelerIncs);$(ArxBrepIncs);$(ArxAtilIncs);$(IncludePath)</IncludePath>
    <ReferencePath>$(ArxSdkIncs);$(ReferencePath)</ReferencePath>
    <LibraryPath>$(ArxSdkLibs);$(ArxHlrLibs);$(ArxAmodelerLibs);$(ArxBrepLibs);$(ArxLibIncs);$(LibraryPath)</LibraryPath>
    <!-- SourcePath>$(SourcePath)</SourcePath -->
    <!-- ExcludePath>$(ExcludePath)</ExcludePath -->
    </PropertyGroup>

    <PropertyGroup>
    <!-- Local Windows debugger -->
    <LocalDebuggerDebuggerType>Auto</LocalDebuggerDebuggerType>
    <!-- LocalDebuggerCommand is defined into an empty $(TargetPath) for the property page, it is later redefined to its proper value. -->
    <LocalDebuggerCommand>$(AcadDir)$(AcadExe)</LocalDebuggerCommand>
    <LocalDebuggerWorkingDirectory>$(ProjectDir)</LocalDebuggerWorkingDirectory>
    <!-- LocalDebuggerMergeEnvironment>true</LocalDebuggerMergeEnvironment -->
    <!-- LocalDebuggerAttach>False</LocalDebuggerAttach -->
    <!-- LocalDebuggerSQLDebugging>False</LocalDebuggerSQLDebugging -->
    </PropertyGroup>

    <ItemDefinitionGroup>
    <Midl>
    <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    <TypeLibraryName>$(IntDir)$(TargetName).tlb</TypeLibraryName>
    <HeaderFileName>%(Filename)_i.h</HeaderFileName>
    <InterfaceIdentifierFileName>%(Filename)_i.c</InterfaceIdentifierFileName>
    </Midl>
    <ClCompile>
    <PreprocessorDefinitions Condition="'$(ArxAppType)'=='dbx' or '$(ArxAppType)'=='dbxnet'">_DBXAPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    <PreprocessorDefinitions Condition="'$(ArxAppType)'=='crx' or '$(ArxAppType)'=='crxnet'">_CRXAPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    <PreprocessorDefinitions Condition="'$(ArxAppType)'=='arx' or '$(ArxAppType)'=='arxnet'">_ACRXAPP;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
    <AdditionalUsingDirectories>$(ArxSdkDir)inc-$(Platform);%(AdditionalUsingDirectories)</AdditionalUsingDirectories>
    </ClCompile>
    <ResourceCompile>
    <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    <AdditionalIncludeDirectories>$(IntDir)</AdditionalIncludeDirectories>
    </ResourceCompile>
    <Link>
    <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
    <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
    <TargetMachine Condition="'$(Platform)'=='Win32'">MachineX86</TargetMachine>
    <TargetMachine Condition="'$(Platform)'=='x64'">MachineX64</TargetMachine>
    </Link>
    </ItemDefinitionGroup>

    </Project>

  • 相关阅读:
    Eclipse背景颜色修改
    Android动画效果translate、scale、alpha、rotate详解
    代理上网的方法
    ubuntu系统使用SSH免密码登陆
    Git的思想和基本工作原理
    GitHub详细教程
    Ubuntu和Redhat(Debian)的差别
    T2: 一种能累积计算积分的EC2实例类型
    win server 2008 r2 iis+php 500错误内部服务器错误。
    从OTF字体文件里查找字体名称
  • 原文地址:https://www.cnblogs.com/edata/p/6796025.html
Copyright © 2011-2022 走看看