2011-10-25 15 views
1

私はスクリプト# 'app'とjsライブラリをラップするインポートライブラリを持っています。私はアプリからライブラリを参照し、すべてコンパイルOK。しかし、ライブラリのJSコードは生成されません。たとえば、ライブラリにRecord派生クラスがある場合、これは.j create_foo_barメソッドをアプリjsに送出する必要があります。そうではない。アプリケーションコードが存在しない生成コードを参照していますスクリプト#、参照されるライブラリのコードを生成する

これはバグですか?私は何をしないのですか?インポートライブラリを別のアプリケーションとしてビルドし、生成されたjsをインクルードする必要がありますか?参照されたアセンブリのJSも生成すると言うコンパイラスイッチはありますか?

答えて

0

インポートライブラリは.jsをまったく生成しません。 .jsファイルを生成するのは、インポートライブラリを参照するのはスクリプトライブラリです。だから、少なくとも3つのプロジェクト、インポートライブラリ(外部ライブラリ用の空のメンバーを持つプロキシクラスだけ)、スクリプトシャープ(インポートライブラリを参照し、独自のクラスを持ち、JavaScriptファイルを生成する)、およびウェブ.jsファイルを使用するアプリケーション(Webページ内のライブラリとスクリプトシャープgeneretedのJavaScriptファイルを参照することを忘れないでください)

+0

これはまさに私が持っているもので、インポートライブラリがJSコードを生成する必要があるクラス(レコード派生型など)を定義している場合は機能しません – pm100

+0

既存のスクリプトを持っていない場合インポートライブラリで定義しているものに相当するものをインポートライブラリに入れないでください。通常のスクリプトライブラリに入れてから、実際にコンパイラがスクリプトを生成します。 –

0

代わりの記録としてのタイプを設定し、私はとしてそれを構成します。

[Imported] 
[IgnoreNamespace] 
[ScriptName("Object")] 
public class ImportedRecordLikeType 
{ 
    // ... 
} 
+0

しかし、JSを発行する必要がある他の構造があります。これはこれらのケースに対処していません – pm100

+0

@ pm100もっと具体的にすることはできますか?私はその間に来たことはありません。 – DuckMaestro

+0

私が使用しているインポートライブラリには、イベントハンドラを設定するスタティックコードがあります。 JSコードが出力されます。 s#コンパイラは、参照されているアセンブリのコードも出力するはずです。これは難しいようですが(しかし、私たちはコンパイラのソースを知っていないので、リフレクタで少し覗き見せてもらえます( – pm100

関連する問題