我必须继续使用Visual Studio和框架.NET框架4编写的程序,但问题是:我有一个macbook。
经过多次研究,我发现通过使用Mono,可以使用mac在vb.net中进行编码。但是,该项目正在Windows计算机上工作,但我收到此警告:
"warning MSB3256: No assemblies were read in from the redist lists. A TargetFramework profile exclusion list could not be generated."
并出现此错误:
"error MSB6006: "vbnc.exe" exited with code 1"
所以我猜测他并没有认识到mono应该取代.NET框架。我正在用MSbuild执行代码,也许这就是问题?
答案 0 :(得分:1)
不幸的是你被困住了。
Microsoft希望通过Visual Studio for Mac将C#/ VB和.NET Core引入Mac,因此您不应再尝试通过Mono将任何.NET Framework项目带到Mac。
这个警告对VB开发人员来说更为关键,因为Mono的VB支持(vbnc.exe是Mono VB编译器)是实验性的,并不支持所有VB的最新功能。
但是,对于.NET Core开发,VB还没有准备好使用,并且应该在Microsoft发布.NET Core 2.0的几个月内可用。
使用.NET Core 2.0预览版
,你绝对可以使用VBhttps://www.infoq.com/news/2017/05/netcore2preview
但是你不能使用VS for Mac,并且必须使用Visual Studio Code之类的编辑器。
答案 1 :(得分:1)
由于某种原因,尽管Mono vbnc
中内置了基于Roslyn的VB编译器,但Mono默认使用vbc
。有趣的是,vbnc
甚至没有与mono-devel
软件包一起安装,并且默认情况下仍在使用。
如果您安装了vbnc
并开始收到此消息:
“错误MSB6006:“ vbnc.exe”以代码1退出”
您需要指示Mono使用vbc
来代替,您的代码将生成。最可靠的方法是通过在vbproj文件中添加以下XML,为每个项目进行设置:
<PropertyGroup>
<VbcToolExe>vbc</VbcToolExe>
</PropertyGroup>
代码应放在根<Project>
标记内。