问题标签 [vbc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 从命令行调用 MSBuild 时转义 DisabledWarnings 的正确方法是什么?
我尝试在参数中像这样转义分号:
/fileLoggerParameters:LogFile=msbuild.log;Append;PerformanceSummary;DisabledWarnings=1%3B2%3B3%3B40003%3B40055%3B42020%3B42021%3B42022%3B42025%3B42104%3BBC40003%3BBC40055%3BBC42020%3BBC42021%3BBC42022%3BBC42025%3BBC42104;WarningLevel=0;VbcVerbosity=Quiet /property:DisabledWarnings=1%3B2%3B3%3B40003%3B40055%3B42020%3B42021%3B42022%3B42025%3B42104%3BBC40003%3BBC40055%3BBC42020%3BBC42021%3BBC42022%3BBC42025%3BBC42104;WarningLevel=0;VbcVerbosity=Quiet
但在我的日志中,它仍然显示它们已转义:
我正在尝试抑制我不关心的这样的警告(aspnet_compiler.exe
我假设在幕后使用):vbc.exe
warning BC42020: Variable declaration without an 'As' clause; type of Object assumed.
warning BC42021: Function without an 'As' clause; return type of Object assumed.
warning BC42022: Property without an 'As' clause; type of Object assumed.
- 等等
更新:现在我不确定用引号转义是否有效。我仍然收到警告,我已经尝试过NoWarn
, DisabledWarnings
, /verbosity:quiet
,WarningLevel=0
并且VbcVerbosity=Quiet
似乎没有任何东西可以抑制它们。
更新 2:这是完整的构建命令:
和 Build.proj:
clr - 在 .NET 2.0 中使用扩展属性转义 Catch-22
同时针对 2.0、3.0、3.5、4.0 和 4.5 的单个 .NET 程序集如何支持 C# 和 VB.NET 使用者的扩展方法?
标准建议是添加以下内容:
这种方法由不止一位 Microsoft 员工建议,甚至在MSDN杂志中出现。它被许多博主广泛称赞为“没有不良影响”。
哦,除了它会导致针对 .NET 3.5 或更高版本的 VB.NET 项目的编译器错误。
Microsoft.Core.Scripting.dll 的作者想通了,并将“公共”更改为“内部”。
这似乎解决了VB兼容性问题。
因此,我信任地将这种方法用于广泛使用的 ImageResizing.Net 库的最新版本(3.2.1) 。
但是,对于某些针对 .NET 3.5+ 的用户,我们开始或多或少随机地收到此编译器错误(原始报告)。
因为 MSBuild/VisualStudio 编译器在解决命名冲突时显然不会费心查看范围规则,并且程序集引用的顺序扮演的角色并不完全记录,所以我不完全理解为什么以及何时发生这种情况。
有一些 hacky 解决方法,例如更改程序集命名空间、重新创建项目文件、删除/读取 System.Core,以及调整 .NET 框架的目标版本。不幸的是,这些变通方法都不是 100%(除了混叠,但这是一个不可接受的痛苦)。
我该如何解决这个问题
- 维护对在程序集中使用扩展方法的支持,
- 维护对 .NET 2.0/3.0 的支持
- 每个 .NET 框架版本不需要多个程序集。
或者,是否有让编译器注意范围规则的修补程序?
未回答此问题的关于 SO 的相关问题
visual-studio-2010 - 如何将字符串保存到 Visual Basic 数组中?
我想知道如何将字符串保存到数组中。这是一个初学者问题,但我真的需要帮助。提前致谢。
command-line - 如何使用 vbc 命令行编译器(无 IDE)引用 shdocvw 之类的 COM lib?
这个问题的基础来自support.microsoft.com上的本教程:http: //support.microsoft.com/kb/176792
这在 Visual Studio 2010 中运行良好,但它似乎依赖于一些我无法使用直接命令行 vbc 编译器复制的幕后魔法。
显然,命令行编译器没有“添加引用”对话框。我天真地尝试添加:
/参考:“C:\windows\system32\shdocvw.dll”
到命令行,但这没有帮助。在这两种情况下,我得到:
错误 BC30002:未定义类型“SHDocVw.ShellWindows”。
错误 BC30002:未定义类型“SHDocVw.InternetExplorer”。
我已经成功地使用了来自 vbscript 和 autohotkey 等其他语言的 shdocvw.dll,AKA Shell.Application,但我目前对 VB.NET 的了解太少,无法知道我是做错了还是不可能。
vb.net - Windows 2003 SP1 中的 VBC.exe 无法编译 Silverlight 5 代码
我有一个软件产品,它直接调用 vbc.exe 来编译 Silverlight 代码。Silverlight VB.Net 代码的编译一直在 Windows 2003/XP 到 Windows 2012/8 环境中工作,除了一个安装了 .Net Framework 3.5SP1 和 4.0 的 Windows 2003 SP2(32 位)环境。
错误是System.String
并且System.Runtime.Serialization.DataContract
是未知类型。有没有人遇到 vbc.exe 无法编译 Silverlight VB.Net 代码的错误是System.String
无法识别的,你是如何解决这个问题的?
vb.net - 通过运行单个 compile.bat 文件来编译具有不同#Const 的 VB.NET 项目?
我可以手动执行此操作(没有任何问题)将我的 VB.NET 代码编译到我的独立 WindowsForms 可执行文件中。但是有没有办法通过命令行脚本来完成这一切?我已经检查了 Vbc、MsBuild 和 DevEnv,但它们似乎都无法完成我需要的 1 个(或更多)步骤。
- 双击我的 foo.vbproj 并启动 VS2005。
- 将我的一些#Const 变量从 true 更改为 false。
- 按 F5 编译它。
- 将我的#Const 改回原来的设置。
- 退出 VS2005。
- 享受我新创建的 bin\debug\foo.exe
关于如何从命令行脚本执行此操作的任何想法?谢谢。
vb.net - 如何在通过 CodeDom 生成的 Visual Basic 中创建可选参数?
这是问题“ CodeDom 在生成 ac# 方法时可以创建可选参数吗? ”的表亲。
我尝试了那里给出的答案。
不过,当我尝试编译时,我收到以下错误:
错误 BC30455:未为“公共函数栏”的参数“可选参数”指定参数(可选参数作为整数)作为整数
我已将其提炼为不支持 OptionalAttribute、DefaultParameterValueAttribute 或两者的 Visual Basic 编译器。
这是我正在编译的蒸馏代码:
使用以下命令编译它:
产生以下输出:
如果我手动将方法签名更改为
然后它编译就好了。
所以我的问题是:
- 如何在通过 CodeDom 生成的 Visual Basic 中创建可选参数?
- vbc 甚至支持使用 OptionalAttribute 和/或 DefaultParameterValueAttribute 吗?
- 如果 vbc 不支持这些属性,是否有任何可能的方法来创建可选参数而不使用 CodeSnippetStatement?
- 如果没有其他方法,那么是否有可能挽救我使用 CodeDom 完成的其他工作,这样我最终不必手动生成我的方法?我是否必须在 CodeSnippetTypeMember 中手动构建其余部分?甚至会起作用吗?
visual-studio-2012 - 有没有办法获得 Visual Studio 使用的构建命令行?
我想从命令行进行构建,但我想从 Visual Studio (2012) 中获取确切的命令行语法,这样我就不必手动找出所有的标志、导入和其他参数。
有没有办法让 Visual Studio 显示这些信息?
visual-studio-2012 - 为什么 vbc 会破坏命令行?
按照这里的技术,我得到了用于编译我的项目的 vbc 命令行。我已经使用它从命令行编译项目,并且我尝试过几次它都运行良好。命令行大约有 25,000 个字符长,如果这意味着什么的话。
但是今天当我运行命令时,我得到了一堆看起来像这样的错误:
但是,当我查看实际命令行以获取对该文件的引用时,它是正确的:
所有其他“找不到文件”错误都是相似的:它正在从文件名中删除字符(不仅是点,还有文本字符),然后它说它找不到那个文件。
这里发生了什么?
更新:第一个坏文件就在命令行中的字符 8192 附近,这表明问题与 Windows 的路径太长有关。但如果这是问题所在,我该如何从命令行构建我的应用程序?
xml - 将多列复制到另一个工作表
我有包含大量不必要数据的 XML 提要,因此我发现以下宏将行(包括 BA 列中的“足球”)复制到新工作表我想做的是仅复制特定列 E、I、 P,T,W,Y,Z 不是整行,所以我不必隐藏那些不必要的列。
子 SearchForString()