問題タブ [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 - .NET2.0の拡張属性を使用してCatch-22をエスケープする
2.0、3.0、3.5、4.0、および4.5を同時に対象とする単一の.NETアセンブリで、C#とVB.NETの両方のコンシューマーの拡張メソッドをサポートするにはどうすればよいですか?
標準的な提案はこれを追加することです:
このアプローチは、複数のMicrosoft従業員によって提案され、MSDNマガジンでも取り上げられました。多くのブロガーから「悪影響がない」と広く歓迎されています。
ああ、それが.NET3.5以降を対象とするVB.NETプロジェクトからのコンパイラエラーを引き起こすことを除いて。
Microsoft.Core.Scripting.dllの作成者はそれを理解し、「public」を「internal」に変更しました。
これはVBの互換性の問題を解決したようです。
そのため、広く使用されているImageResizing.Netライブラリの最新バージョン(3.2.1)に対して、このアプローチを信頼して使用しました。
しかし、その後、.NET 3.5以降を対象とする特定のユーザーに対して、このコンパイラエラー(元のレポート)が多かれ少なかれランダムに発生し始めます。
MSBuild / VisualStudioコンパイラは、名前の競合を解決するときにスコープルールを気にしないようであり、アセンブリ参照の順序は十分に文書化されていない役割を果たしているため、これが発生する理由と時期を完全には理解していません。
アセンブリ名前空間の変更、プロジェクトファイルの再作成、System.Coreの削除/読み取り、ターゲットバージョンの.NET Frameworkの操作など、いくつかの厄介な回避策があります。残念ながら、これらの回避策はいずれも100%ではありません(エイリアシングを除くが、それは許容できない苦痛です)。
どうすればこれを修正できますか
- アセンブリ内での拡張メソッドの使用のサポートを維持し、
- .NET 2.0/3.0のサポートの維持
- .NETFrameworkのバージョンごとに複数のアセンブリを必要としません。
または、コンパイラにスコープ規則に注意を向けさせるための修正プログラムはありますか?
この質問に答えないSOに関する関連質問
visual-studio-2010 - 文字列をVisualBasic配列に保存する方法は?
文字列を配列に保存するにはどうすればよいのでしょうか。初心者の質問ですが、本当に助けが必要です。前もって感謝します。
command-line - vbc コマンドライン コンパイラ (IDE なし) を使用して shdocvw のような COM ライブラリを参照する方法は?
この質問の基礎は、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 (別名 Shell.Application) を正常に使用しましたが、現在、VB.NET をほとんど理解していないため、間違っているのか、それとも不可能なのかを知ることができません。
vb.net - Windows 2003 SP1 の VBC.exe が Silverlight 5 コードをコンパイルできない
vbc.exe を直接呼び出して Silverlight コードをコンパイルするソフトウェア製品があります。この Silverlight VB.Net コードのコンパイルは、.Net Framework 3.5SP1 および 4.0 がインストールされている 1 つの Windows 2003 SP2 (32 ビット) 環境を除いて、Windows 2003/XP から Windows 2012/8 環境で動作しています。
エラーは、System.String
とSystem.Runtime.Serialization.DataContract
が不明な型であるということです。vbc.exe が Silverlight VB.Net コードをコンパイルできないというエラーに遭遇した人System.String
はいますか? どのように問題を解決しましたか?
vb.net - 単一の compile.bat ファイルを実行して、異なる #Const で VB.NET プロジェクトをコンパイルしますか?
VB.NET コードをスタンドアロンの WindowsForms 実行可能ファイルにコンパイルするために、これを手動で (1 つの問題もなく) 行うことができます。しかし、これをすべてコマンドライン スクリプトから実行する方法はありますか? Vbc、MsBuild、および DevEnv にチェックインしましたが、これらはすべて、必要な手順の 1 つ (またはそれ以上) を実行できないようです。
- my foo.vbproj をダブルクリックして、VS2005 を起動します。
- #Const 変数のいくつかを true から false に変更します。
- F5 を押してコンパイルします。
- #Const を元の設定に戻します。
- VS2005 を終了します。
- 新しく作成した bin\debug\foo.exe をお楽しみください
代わりにコマンドライン スクリプトからこれを行う方法についてのアイデアはありますか? ありがとう。
visual-studio-2012 - Visual Studio で使用されるビルド コマンド ラインを取得する方法はありますか?
コマンド ラインからビルドを実行したいのですが、Visual Studio (2012) から正確なコマンド ライン構文を取得したいので、フラグ、インポート、その他のすべてを手動で把握する必要はありません。パラメーター。
Visual Studio でこの情報を表示する方法はありますか?
xml - 複数の列を別のワークシートにコピーする
不要なデータがたくさんある XML フィードがあるので、列 BA に「サッカー」を含む行を新しいワークシートにコピーする次のマクロを見つけました。具体的な列 E、I、 P、T、W、Y、Z を行全体ではなくシートにするため、不要な列を非表示にする必要はありません。
サブ SearchForString()