问题标签 [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.

0 投票
1 回答
1590 浏览

.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:

0 投票
1 回答
1997 浏览

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%(除了混叠,但这是一个不可接受的痛苦)。

我该如何解决这个问题

  1. 维护对在程序集中使用扩展方法的支持,
  2. 维护对 .NET 2.0/3.0 的支持
  3. 每个 .NET 框架版本不需要多个程序集。

或者,是否有让编译器注意范围规则的修补程序?

未回答此问题的关于 SO 的相关问题

0 投票
1 回答
1238 浏览

visual-studio-2010 - 如何将字符串保存到 Visual Basic 数组中?

我想知道如何将字符串保存到数组中。这是一个初学者问题,但我真的需要帮助。提前致谢。

0 投票
1 回答
2031 浏览

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 的了解太少,无法知道我是做错了还是不可能。

0 投票
0 回答
155 浏览

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无法识别的,你是如何解决这个问题的?

0 投票
1 回答
222 浏览

vb.net - 通过运行单个 compile.bat 文件来编译具有不同#Const 的 VB.NET 项目?

我可以手动执行此操作(没有任何问题)将我的 VB.NET 代码编译到我的独立 WindowsForms 可执行文件中。但是有没有办法通过命令行脚本来完成这一切?我已经检查了 Vbc、MsBuild 和 DevEnv,但它们似乎都无法完成我需要的 1 个(或更多)步骤。

  1. 双击我的 foo.vbproj 并启动 VS2005。
  2. 将我的一些#Const 变量从 true 更改为 false。
  3. 按 F5 编译它。
  4. 将我的#Const 改回原来的设置。
  5. 退出 VS2005。
  6. 享受我新创建的 bin\debug\foo.exe

关于如何从命令行脚本执行此操作的任何想法?谢谢。

0 投票
1 回答
768 浏览

vb.net - 如何在通过 CodeDom 生成的 Visual Basic 中创建可选参数?

这是问题“ CodeDom 在生成 ac# 方法时可以创建可选参数吗? ”的表亲。

我尝试了那里给出的答案。

不过,当我尝试编译时,我收到以下错误:

错误 BC30455:未为“公共函数栏”的参数“可选参数”指定参数(可选参数作为整数)作为整数

我已将其提炼为不支持 OptionalAttribute、DefaultParameterValueAttribute 或两者的 Visual Basic 编译器。

这是我正在编译的蒸馏代码:

使用以下命令编译它:

产生以下输出:

如果我手动将方法签名更改为

然后它编译就好了。

所以我的问题是:

  1. 如何在通过 CodeDom 生成的 Visual Basic 中创建可选参数?
  2. vbc 甚至支持使用 OptionalAttribute 和/或 DefaultParameterValueAttribute 吗?
  3. 如果 vbc 不支持这些属性,是否有任何可能的方法来创建可选参数而不使用 CodeSnippetStatement?
  4. 如果没有其他方法,那么是否有可能挽救我使用 CodeDom 完成的其他工作,这样我最终不必手动生成我的方法?我是否必须在 CodeSnippetTypeMember 中手动构建其余部分?甚至起作用吗?
0 投票
2 回答
33191 浏览

visual-studio-2012 - 有没有办法获得 Visual Studio 使用的构建命令行?

我想从命令行进行构建,但我想从 Visual Studio (2012) 中获取确切的命令行语法,这样我就不必手动找出所有的标志、导入和其他参数。

有没有办法让 Visual Studio 显示这些信息?

0 投票
1 回答
915 浏览

visual-studio-2012 - 为什么 vbc 会破坏命令行?

按照这里的技术,我得到了用于编译我的项目的 vbc 命令行。我已经使用它从命令行编译项目,并且我尝试过几次它都运行良好。命令行大约有 25,000 个字符长,如果这意味着什么的话。

但是今天当我运行命令时,我得到了一堆看起来像这样的错误:

但是,当我查看实际命令行以获取对该文件的引用时,它是正确的:

所有其他“找不到文件”错误都是相似的:它正在从文件名中删除字符(不仅是点,还有文本字符),然后它说它找不到那个文件。

这里发生了什么?

更新:第一个坏文件就在命令行中的字符 8192 附近,这表明问题与 Windows 的路径太长有关。但如果这是问题所在,我该如何从命令行构建我的应用程序?

0 投票
1 回答
354 浏览

xml - 将多列复制到另一个工作表

我有包含大量不必要数据的 XML 提要,因此我发现以下宏将行(包括 BA 列中的“足球”)复制到新工作表我想做的是仅复制特定列 E、I、 P,T,W,Y,Z 不是整行,所以我不必隐藏那些不必要的列。

子 SearchForString()