問題タブ [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.
compiler-construction - fsc.exe (F#) または csc.exe (C#) で app.config ファイルを含める方法は?
app.config ファイルを使用するコンソール アプリケーションがありますが、それをコマンド ライン パラメーターに含める方法がわかりません。これにより、fsc.exe を使用してプログラムでコンパイルすると、出力で Program.exe.config が作成されます。今のところ私の回避策は、app.config の名前を Program.exe.config に変更し、それを Program.exe と同じ出力場所にコピーすることです。これを行うには fsc.exe のコマンド ライン引数が必要ですが、csc.exe には fsc.exe が行うものと同一または非常に近いものがあると思われるため、csc.exe の内容を知っている場合は、やってみて。
ボブ
c# - App.config と csc.exe
MSSQL データベースでストアド プロシージャをテストするために、いくつかの C# コンソール プログラムを作成しました。データベースへの接続文字列を app.config に保存しています。プロジェクト内の各クラスは接続文字列を参照しますが、それらにはすべて main メソッドが含まれているため、コンパイルを行うために次のスクリプトを作成しました。
次のエラーが表示されます。
CS0103 「'Properties' という名前は、現在のコンテキストには存在しません。」
コンパイラに渡すために必要なものはありますか?
build - サブディレクトリ内の nant および参照ライブラリを使用してビルドする
lib フォルダー内にあるいくつかのサードパーティ ライブラリを含むプロジェクトのビルド ファイルを作成しています。したがって、私のビルドスクリプトは次のようになります。
コンパイルは正常に実行されますが、ランタイムは機能せず、ライブラリ Should.Fluent.dll が見つからないというメッセージが表示されます。プログラムにそれを見つけさせるにはどうすればよいですか?
c# - csc.exeパスを取得する方法は?
最新の.NETFrameworkのcsc.exeへのパスを取得する方法はありますか?
ファイルは通常c:\ Windows \ Microsoft.NET \ Framework \ vX.X.XXXにありますが、問題は複数のバージョンがインストールされている可能性があり、32ビットバージョンと64ビットバージョンの両方があることです。
これに対する解決策はありますか?
c# - CSC.EXE での XmlSerializer デシリアライズのバグ
私は、自分のコンピューターで正常に動作し、通常は他のコンピューターでも動作するプログラムを作成しました。ただし、実行時に問題が発生している人が 1 人いて、その理由がよくわかりません。Stacktrace は次のとおりです。
System.Runtime.InteropServices.ExternalException (0x80004005): 不可能なプログラムを使用しています。escuzione 時代のコマンド "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\c sc.exe" /noconfig /fullpaths @"C:\Users\Andry\AppData\Local\Temp\dot0eqxi.cmdline" . ---> System.ComponentModel.Win32Exception (0x80004005): System.CodeDom.Compiler.Executor.ExecWaitWithCaptu reUnimpersonated の不明なエラー (0x36b1) (SafeUserTokenHandle userToken、文字列 cmd、文字列 currentDir、TempFileCollection tempFiles、文字列 & outputName、文字列 & errorName、文字列 trueCmdLine ) Microsoft.CSharp の System.CodeDom.Compiler.Executor.ExecWaitWithCaptu re(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine) 内。
ご覧のとおり、問題は逆シリアル化 (そのオブジェクトは逆シリアル化されるだけ) に関連しており、XmlSerializer コンストラクターで発生します。
この問題は、何らかの形で次の質問に関連している可能性があります: Windows サービスが csc.exe のインスタンスを起動するのはなぜですか? Windows サービスが csc.exe のインスタンスを起動するのはなぜですか?
私は明らかにバグを再現することはできません。関連するコードは次のとおりです。
Program.cs
RangeCollection.cs
ValidIconImageIndices.xml (関連する XML ファイル)
ユーザーのOSはわかりませんがWindows 7 home 64bitだと思います。彼は .NET 4.0 を使用しており、アプリケーションは .net 4.0 用の Winforms アプリケーションです。
テストしたい場合は、アプリケーションへのリンク: http://dl.dropbox.com/u/762638/Files/Documents/My%20Programs/SpellCaster3/SpellCaster3.zip
インストーラーへのリンク: http://dl.dropbox.com/u/762638/Files/Documents/My%20Programs/SpellCaster3/setup.zip
c# - csc (C# コンパイラ) または dmcs (mono C# コンパイラ) で IL ソース コードを生成する方法は?
gcc には、アセンブリ ソース コードを生成するための -s オプションがあります。csc (MS C# コンパイラ) または dmcs (mono C# コンパイラ) は同等ですか? これらのコンパイラは、実行バイナリではなく読み取り可能な IL ソース コードを生成するオプションを提供しているということですか?
c# - C# コードを IL にコンパイルすると .ctor() が作成されるのはなぜですか?
この単純な C# コードを使用して、csc hello.cs; ildasm /out=hello.txt hello.exe.
これはildasmのILコードです。
.method public instance void .ctor()コードの用途は何ですか?何もしないようです。
c# - C#コンパイラへのパスを見つける「適切な」方法は?
重複の可能性:
C# - csc.exe パスを取得するには?
特定のシステムで C# コンパイラへのパスを見つける「適切な」方法はありますか?
たとえば、Java の場合、「適切な」方法は、HKLM\Software\JavaSoftレジストリ キーを使用して、すべてが .xml にあると仮定するのではなく、さまざまな JDK とその場所をすべて調べることです%ProgramFiles%\Java。
C#にも同様の方法はありますか?
msbuild - NANT CSCビルドの失敗:参照がありませんか?
winexeを構築するための次のNANTCSCターゲットがあります。
失敗メッセージは次のとおりです。
myClass.csには、参照を使用してこれがあります。
VSでアプリをビルドするのに問題はありませんが、NANTからビルドできませんでした。NANTビルドでMicrosoft.ReportViewer.WinForms.dllへの参照を見逃す可能性があると思います。このdllをNANTのビンに含める方法がわかりませんか?
cscターゲットの参照を変更しようとしました:
まだ動作していません。COPYターゲットを使用してすべてのdllファイルをbinから$(build.dir)にコピーする必要がありますか?
更新:プロジェクト参照内のこれらのMicrosoft.ReportViewer.xx.dllファイルがローカルにコピーされていないことがわかりました。これらの2つのdllファイルのNANTでローカルへのコピーをシミュレートするにはどうすればよいですか?NANTはコンソールのビルドアプリであり、グローバルキャッシュ内の参照に関する知識がないため、これで問題が解決する可能性があると思います。
c# - C# 外部エイリアス
まったく同じインターフェイスを持つ 2 つのアセンブリがあります (Assem1 と Assem2 と呼びましょう)。
Assem2 から Assem1 のメソッドを呼び出すために extern エイリアスを使用することは可能ですか?
ソースコードは次のようなものです。
編集済み: 要求に応じて - 一般的なタスクに関する追加情報を追加しています:
ActiveX.exe を使用して外部サービスからデータ (応答) を取得するアプリケーションをテストする必要があります。私の仕事は、この ActiveX.exe を置き換えることなので、応答を制御します。応答は大きなテキスト データであるため、元の ActiveX.exe ファイルを使用して要求を生成します。
新しいアセンブリ (私の質問では Assem1) には、元の ActiveX.exe (Assem2) とまったく同じインターフェイスが必要です。一般的な考え方: Assem1 は、テスト対象のアプリケーションから要求を受け取ります。リクエストがデータ ソースのレスポンスと一致する場合 --> レスポンスを読み取り、アプリケーションに返します。いずれの応答とも一致しない場合、Assem1 は Assem2 に応答を要求し、それをデータ ソースに追加して、テスト対象のアプリケーションに応答します。
前述のように、両方のインターフェイスがまったく同じである必要があるため、extern エイリアスを使用して元の ActiveX.exe を参照します。C# で extern エイリアスを使用するインターネット上のすべての例は、同じインターフェイスを持つ 2 つのアセンブリを参照する 1 つのアセンブリに指定されていますが、相互にではありません。