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_ROOT\Msi.Package\shell\runas]
@="以管理员运行"
[HKEY_CLASSES_ROOT\Msi.Package\shell\runas\command]
@="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.0\VC\vcprojects\Autodesk\
将 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)\Autodesk\ObjectARX 2015 Wizards\ArxAppWiz"
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.0\VC\vcprojects\Autodesk\)
下面还需要改一下arx的配置模板文件,
默认路径C:\Program Files (x86)\Autodesk\ObjectARX 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 Files\Autodesk\AutoCAD 2015\</AcadDir>
<AcadDir Condition="'$(Platform)'=='Win32'">C:\Program Files\Autodesk\AutoCAD 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)\utils\HlrApi\inc</ArxHlrIncs>
<ArxAmodelerIncs>$(ArxSdkDir)\utils\amodeler\inc</ArxAmodelerIncs>
<ArxBrepIncs>$(ArxSdkDir)\utils\brep\inc</ArxBrepIncs>
<ArxAtilIncs>$(ArxSdkDir)\utils\Atil\Inc</ArxAtilIncs>
<ArxSdkLibs Condition="'$(Platform)'=='Win32'">$(ArxSdkDir)\lib-win32</ArxSdkLibs>
<ArxSdkLibs Condition="'$(Platform)'=='x64'">$(ArxSdkDir)\lib-x64</ArxSdkLibs>
<ArxHlrLibs>$(ArxSdkDir)\utils\HlrApi\lib-$(Platform)</ArxHlrLibs>
<ArxAmodelerLibs>$(ArxSdkDir)\utils\amodeler\lib-$(Platform)</ArxAmodelerLibs>
<ArxBrepLibs>$(ArxSdkDir)\utils\brep\lib-$(Platform)</ArxBrepLibs>
<ArxAtilLibs>$(ArxSdkDir)\utils\Atil\Lib-$(Platform)</ArxAtilLibs>
<ArxSDKVersion>20.0</ArxSDKVersion>
<ArxSDKPlatform>v110</ArxSDKPlatform>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Condition="'$(ArxAppType)'=='dbx' or '$(ArxAppType)'=='dbxnet'" Project="$(ArxSdkDir)\inc\dbx.props" />
<Import Condition="'$(ArxAppType)'=='crx' or '$(ArxAppType)'=='crxnet'" Project="$(ArxSdkDir)\inc\crx.props" />
<Import Condition="'$(ArxAppType)'=='arx' or '$(ArxAppType)'=='arxnet'" Project="$(ArxSdkDir)\inc\arx.props" />
<Import Condition="'$(Configuration)'=='Release'" Project="$(ArxSdkDir)\inc\rxsdk_Releasecfg.props" />
<Import Condition="'$(Configuration)'=='Debug'" Project="$(ArxSdkDir)\inc\rxsdk_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>
Win10或Win8下ObjectARX2015 Wizard向导创建项目失败解决方法的更多相关文章
- VS2010环境下用ANSI C创建DLL和使用方法(转)
源:VS2010环境下用ANSI C创建DLL和使用方法 . 创建DLL工程 1.2 创建一个dll工程. 操作:a.文件->新建->项目->Win32控制台应用程序. b.输入工程 ...
- Win10 连接L2TP VPN 失败解决方法
Win10 连接L2TP VPN 失败解决方法 iOS系统不知道在什么时候,已经不支持PPTP VPN.偶尔的机会刚好看到github上的一键式VPN服务器部署脚本setup-ipsec-vpn,就在 ...
- Visual studio 创建项目失败vstemplate
Visual studio 创建项目失败 提示 the vstemplate file references the wizard class 'Microsoft.VisualStudio.WinR ...
- 64位win10系统无法安装.Net framework3.5的两种解决方法
参考网站: https://blog.csdn.net/zang141588761/article/details/52177290 在Windows10中,当我们安装某些软件的时候会提示“你的电脑上 ...
- 64位win10系统无法安装.Net framework3.5的两种解决方法【转】
近日有网友反映在windows10_64位系统电脑上安装Net framework3.5,操作时总失败,怎么办呢?小编下面就介绍win10 64位系统无法安装Net framework3.5的两种解决 ...
- Vs2012 创建项目失败 未找到与约束ContractName
刚开始使用vs2012的时候,创建项目失败,后来找到原因 ,是KB2840642V2的原因,于是 卸载之.vs正常
- Centos下忘记mysql的root密码的解决方法
Centos下忘记mysql的root密码的解决方法 一:(停掉正在运行的mysql) [root@NetDakVPS ~]# service mysql stop 二:使用 “--skip-gran ...
- Win10电脑经常自动掉线、自动断网的解决方法
近期一客户称自己使用电脑上网的时候,过一段时间莫名其妙的出现自动掉线.自动断网的情况,那么遇到这个问题该怎么办?下面装机之家分享一下Win10电脑经常自动掉线.自动断网的解决方法,以Win7系统为例. ...
- 排错-windows平台下访问oracle em出现空白的解决方法
排错-windows平台下访问oracle em出现空白的解决方法 by:授客 QQ:1033553122 问题描述 IE浏览器本地访问oem,出现空白页面,就左上角有一行字符 http://loca ...
随机推荐
- 一个想法照进现实-《IT连》创业项目:关于团队组建
前言: 从上一篇<三天的风投对接活动内幕分享>归来后,从中领悟了不少内涵. 之后暂停了找钱的想法,这些天也拒绝了不少想要参与众筹的同学. 目前主要精力放在以下三件事: 1:重新规划顶层设计 ...
- webpack学习笔记(二)-- 初学者常见问题及解决方法
这篇文章是webpack学习第二篇,主要罗列了本人在实际操作中遇到的一些问题及其解决方法,仅供参考,欢迎提出不同意见. 注:本文假设读者已有webpack方面相关知识,故文中涉及到的专有名词不做另外解 ...
- [项目记录] 用c语言完成的一个学生成绩管理系统
一.要求: 学生成绩管理系统 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).使用链表编程实现如下菜单驱动的学生成绩管理系统. 从文件读入每个学生个人信 ...
- zookeeper + dubbo + spring boot
最近开始接触了分布式的一些东西,这里给自己作一个学习笔记. 这里只是做一个运行demo,具体的理论知识就不在这里阐述了. 1.zookeeper的安装与启动 下载地址:http://www.apach ...
- UT源码-124
(1)设计三角形问题的程序 输入三个整数a.b.c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形.等腰三角形.一般三角形(特殊的还有直角三角形),以及不构成三角形.(等 ...
- 关于SQL的一些小知识
在代码中调用存储过程的时,必须先测试存储过程,存储过程测试成功之后再去java中去调用!!@!@#!@!@! 以后自己写的存储过程写一个本地保存一个.!~~~!!(这个很关键) 以后在代码中的SQL都 ...
- 转接口IC GM7150BN/ GM7150BC:CVBS转BT656芯片 低功耗NTSC/PAL 视频解码器
1 概述 GM7150 是一款9 位视频输入预处理芯片,该芯片采用CMOS 工艺,通过I2C 总线与PC 或DSP 相连构成应用系统. 它内部包含1 个模拟处理通道,能实现CVBS.S-V ...
- Service详解
/** * 后台执行的定时任务 */ public class LongRunningService extends Service { @Override public IBinder onBind ...
- Python爬虫 Cookie的使用
Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么 ...
- JS实现轻量级计算器
想尝试做一个网页版计算器后,参考了很多博客大神的代码,综合归纳.总结修改,整理如下文. 附: Demo 源码 一.HTML+CSS 具体结构样式如下图,基本参照手机计算器界面.按钮功能可以查 ...