在《一步步学习MicroStation CE Addin开发》文章第二章第5点 重新生成目标文件 后VS显示如下:
已启动重新生成…1>------ 已启动全部重新生成: 项目: csAddins, 配置: Debug Any CPU ------1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.DgnDisplayNet”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.DgnPlatformNET”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.ECObjects.Interop3”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.GeometryNET”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.Interop.MicroStationDGN”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.MicroStation”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.MicroStation.Interfaces.1.0”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.MicroStation.Ribbon”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.MicroStation.WPF”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.UI”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“Bentley.Windowing”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2304,5): warning MSB3270: 所生成项目的处理器架构“MSIL”与引用“ustation”的处理器架构“AMD64”不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改您的项目的目标处理器架构,以使您的项目与引用间的处理器架构保持一致,或者为引用关联一个与您的项目的目标处理器架构相符的处理器架构。1>D:\CustomFiles\BentleyMstn\MstnCE\Addins\csAddins\csAddins\MyAddin.cs(1,24,1,27): error CS0116: 命名空间不能直接包含字段、方法或语句之类的成员1>D:\CustomFiles\BentleyMstn\MstnCE\Addins\csAddins\csAddins\MyAddin.cs(1,24,1,27): error CS0115: “<invalid-global-code>.Run(string[])”: 没有找到适合的方法来重写========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========
MS已关闭后再重新生成的,请问是什么原因
用这个连接里边的方法修改一下目标平台试试:blog.csdn.net/.../109239999
按照您刚刚发的这教程,修改为X86后依旧显示不成功
我每次打开VS后都会出现这个界面,会不会是因为这个原因
ustation.dll在一开始已经添加了
使用.Net Framework 4.7.2后错误列表使这样的
warning的提示可以无视,你的问题在最后两行error上,猜测是.net framework不对,应该要用4.6.2
如果版本没问题,看了下你前面的代码截图,没有命名空间,没有类,必然编译不过啊...
我这用的是VS2022,.net framework没有4.6.2
前面的代码是复制粘贴《一步步学习MicroStation CE Addin开发》文章里的,那这个缺少命名空间和类该怎么添加呢
安装4.6.2 可以使用visual studio installer点修改,单个组件标签页里安装
至于代码,这个是C#基础语法,和二次开发其实没什么关系。教程里,第一章里有完整的代码,然后,第二章你复制的部分只是对第一章Run方法的修改,如果开发经验不足的话,可能要多看几遍。
刚刚按照您给的思路将第二章的代码修改进了第一章给的代码,重新生成后就成功了,在MS里也能显示出图形。
还有一个的问题:在之前https://communities.bentley.com/communities/other_communities/chinafirst/f/abd-aes/221680/id这个回答中,您给了我一个您编写的一个插件,此插件对我的工作有了很大的帮助,这个插件也是通过MicroStation CE Addin开发的吗,Addin和MDL开发有什么区别?
Addin用的C#语言开发,结果文件是一个.net dll;MDL用的C++语言开发,结果是一个.ma文件和native dll
MDL可以使用更多的、更底层的接口,可以实现更复杂的需求。.net接口其实也是官方对c++接口的托管,但是很大可能不全,功能受限,不过一般的需求是够用了,毕竟从开发效率上来说,.net要快很多也要简单很多。那个帖子给的链接是用来定制按钮的,对addin和mdl是一样的。
插件可以使用ilspy看源代码,不过我习惯写linq和匿名方法,这种语法糖式的写法可能对初学者不太友好。
我理解了,现阶段使用Addin来学习二次开发的话,应该是够了,如果后期还需要更进一步,就去申请加入加入Bentley开发商网络(BDN)来获得更底层的接口来做更复杂的开发。
十分感谢您的细心解答,让我对二次开发有了更深入的了解。
BDN并不一定要加入,BDN是商用授权(要额外购买),可以销售二次开发产品,年费的select会员就可以拿到完整的sdk了。更复杂的功能,需要用c++来写,使用sdk内的头文件和库来编译,addin的话,软件安装环境里就提供了需要的dll,不需要额外安装sdk。
Chao Cheng said:BDN并不一定要加入,BDN是商用授权(要额外购买),可以销售二次开发产品,年费的select会员就可以拿到完整的sdk了。
BDN分SELECT BDN和Commercial BDN。交了年费的SELECT会员可以免费申请加入SELECT BDN。非SELECT会员则需要付费加入Commercial BDN。所以,原则上,如果您做了开发的,我们都是鼓励要申请加入BDN的。请看如下文章:
Bentley开发者网络(BDN)介绍