問題タブ [csc]
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.
c# - NAntがWindowsフォームアプリケーションをコンパイルするときにコマンドウィンドウが表示されないようにする
私は、ビジュアル スタジオを使用せずに小さな Windows フォーム アプリを作成して遊んでいます。
Notepad++ でソースを作成し、NAnt ビルド ファイルでコンパイルします。
アプリケーションを実行すると、アプリケーション ウィンドウだけでなくコマンド ウィンドウも表示されます。コマンド ウィンドウが表示されないようにするにはどうすればよいですか?
ビルドファイル
.net - Visual Studio2010RTMのcscからSystem.Web.Mvcを参照中にエラーが発生しました
csc / target:library /reference:System.dll,System.Web.dll,System.Web.Mvc.dll Foo.cs
Microsoft(R)Visual C#2010コンパイラバージョン4.0.30319.1 Copyright(C)MicrosoftCorporation。全著作権所有。
エラーCS0006:メタデータファイル'System.Web.Mvc.dll'が見つかりませんでした
(注-GAC_MSILフォルダーの下のGACに存在します)
compiler-construction - VS2010 は csc.exe / vbc.exe を (直接的または間接的に) 使用して、関連するプロジェクトをコンパイルしますか?
ほぼタイトル通り。
DevEnv.exe が実際にこれらをいつでも呼び出しているという証拠は見つかりません。
msbuild - MSBuild CoreCompile ターゲットは参照アセンブリをどのように識別しますか
TFS2010 (RC) Microsoft.TeamFoundation.Build ターゲットの CoreCompile タスクが csc.exe に渡されるアセンブリ参照をどのように生成するかについて、誰でも光を当てることができますか?
System.Xml.dll のバージョン 2.0 と 4.0 の両方への参照が見られますが (以下の太字で表示)、プロジェクト アセンブリ参照で「特定のバージョン: true」フラグを使用しており、 4.0 アセンブリへの参照はありません。 btproj ファイル:
更新: ResolveAssemblyReferencesターゲット ( Microsoft.Common.targetsから) の出力を確認したところ、プロジェクトで参照されているアセンブリ (つまり、2.0 フレームワーク アセンブリ) のみがアイテム リスト'_ResolveAssemblyReferenceResolvedFiles'に含まれていることがわかります。
ただし、CoreCompile ターゲットには、上記で説明した 4.0 アセンブリがまだ含まれています。
更新 2 : わかりました。BizTalkビルド スクリプトのAddBizTalkHiddenReferencesターゲットのあいまいなバグまで追跡しました。この特定のターゲットは、上記で複製されたものを含め、追加のアセンブリを追加しようとします。
ただし、「mscoree.dll」の GetCORSystemDirectory を使用します。これは、プロセスに読み込まれる共通言語ランタイム (CLR) のインストール ディレクトリを返します。この場合は、MSBuild に読み込まれる 4.0 フレームワークです。その結果、ヘルパーは参照されている System.Xml アセンブリを持っているとは見なさず、それを追加するため、重複します。
c# - Antでcscタスクを使用してビルドする際の問題
cscを使用したantビルドターゲットがあります。
実行すると、次の例外が発生します。
cscが失敗しました:java.io.IOException:プログラム "csc"を実行できません:CreateProcess error = 2、システムは指定されたファイルを見つけることができません
ただし、例外なく実行されますが、空のServiceLauncher.exeを手動で追加すると、.exeファイルが正しくビルドされません。
この.Netプロジェクト「ServiceLauncher」を正しくビルドするにはどうすればよいですか?
c# - C# プロジェクトに FSharp.Core を含める: 型衝突の解決
C# からいくつかの F# 型 ( Matrixなど) を使用しているため、C# プロジェクトで FSharp.Core アセンブリを参照する必要があります。ここまでは順調ですね。
ただし、 mscorlib.dll (v4) で定義されているいくつかの型は、FSharp.Core (v2) で「複製」されているようSystem.Tuple
ですSystem.IObservable
。なぜこれが .Net 4 にあるのか理解できません。Matt Ellis は、MSDN の記事でそれらが削除されると具体的に述べています。
その [重複] 問題に苦しんでいる言語の 1 つは F# で、以前は FSharp.Core.dll で独自のタプル型を定義していましたが、Microsoft .NET Framework 4 で追加されたタプルを使用するようになりました。
ただし、C# プログラムで使用したいものを指定できれば、この特定の見苦しい重複を回避する準備ができています。System.Tuple
たとえば、型を使用しようとすると、次の C# コンパイラ エラーが発生します。
エラー 2 タイプ 'System.Tuple' が 'c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client\mscorlib.dll' と 'c:\Program Files の両方に存在します(x86)\Reference Assemblies\Microsoft\FSharp\2.0\Runtime\v2.0\FSharp.Core.dll'
どうやら、これを回避する方法は、C# コンパイラ コマンド ラインのスイッチで、 type のエイリアスを作成することです。
csc.exe MyType.cs /reference:System.Tuple`2=mscorlib.dll /reference:FSharp.Core.dll
ただし、Visual Studio からこのパラメーターを C# コンパイラーに送信する方法が見つかりません。
誰にもこれに対する解決策がありますか?
dll - DLL と .cs ファイルをマージする
大きなプロジェクトの一部は、再利用したい支払いシステムです。この支払いシステムのすべてのクラス ファイルを DLL にマージして、他のすべてのプロジェクトで参照として追加したいと考えています。現在の支払いシステムは、商用アプリケーションの DLL からの名前空間も使用しています (nsoftware-paypal など)。csc で個々のファイルを DLL にコンパイルしようとしましたが、うまくいきませんでした。ILMergeも試しましたが、これもうまくいかないようです。
CSC
.cs ファイルは nsoftware-Paypal の DLL の名前空間を使用するため、.cs と共に DLL ファイルを csc コマンドに含めました。「...nsoftware.InPayPal.dllはテキストファイルではなくバイナリファイルです」というエラーが表示されます。Paypal DLL なしでコンパイルしようとすると、「nsoftware という名前の型または名前空間が見つかりません」というエラーがスローされます。
ILMerge は .cs ファイルも許可しません (もちろんアセンブリではないため)。
私がする必要があるのは、このシステム全体の 1 つ (または複数) の DLL を生成して、他のプロジェクトで使用できるようにすることだけです。
可能?
.net - VSVARS32.BAT バッチ ファイルが永続的に有効であることを確認するにはどうすればよいですか?
通常のコマンド プロンプトから Microsoft C# コンパイラを使用する必要がある場合は、ここにその方法が記載されており、環境変数の設定方法 (VSVARS32.BAT を実行して) がここに記載されています。私はそれを実行し、その後「csc」(コンパイラ)を実行できます。ただし、VSVARS32.BAT を実行するコマンド ライン ウィンドウを閉じると、効果が消えるようです。
アプリケーションから csc.exe を実行できるように、環境変数を永続的にする方法はありますか?
c# - Visual Studio がおかしくなった: コンパイルしようとすると、「ディレクトリ名が無効です」というエラーが表示される
非常に奇妙な理由で、私の Visual Studio 2008 は、C# プロジェクトをコンパイルしようとすると、実行可能ファイルの出力を実行可能ファイルと同じ名前のディレクトリに書き込もうとします。少なくとも、それがエラー メッセージが意味することのようです。私のプロジェクトのいずれかで Compile を実行した後、CSC.EXE は次のコンパイラ エラーを報告します。
出力ファイル 'D:\Projects\Examples\StringBuilderVsString\obj\Release\StringBuilderVsString.exe' に書き込めませんでした -- 'ディレクトリ名が無効です。'
内部obj\Release
またはobj\Debug
すべての中間リソースを見ると、StringBuilderVsString.pdb などはそのディレクトリに正しく書き込まれています。ディレクトリにスペースはありません。このエラーは、コマンド プロンプトから csc.exe を実行したときにも発生します。
Process Monitor を実行すると、csc.exe によってアクセスされたファイルに対して SUCCESS のみが表示され、存在しない場所へのクエリや書き込みは表示されません。
これに取り組むためのアイデアは大歓迎です。
msbuild - MSBuild が不適切なバージョンの csc.exe を呼び出す
私はチーム シティを使用して nant スクリプトを呼び出しています。現在、この nant スクリプトは非常に単純化されており、ソリューション内の 1 つのプロジェクトで msbuild タスクを呼び出すだけです。
ビルドが失敗しています。msbuild 3.5 が呼び出されているように見えますが、.net 2.0 フォルダーから誤って csc.exe を呼び出しています。.net 3.5 言語機能を使用しているため、コンパイルは失敗します。
csproj ファイルを見ると、ToolsVersion と TargetFrameworkVersion の両方が 3.5 を使用するように設定されています。msbuild が間違ったバージョンの csc.exe を選択する原因は何ですか?