問題タブ [postsharp]
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.
visual-studio-2010 - VS 2010 へのアップグレード後に Team City ビルドが失敗する
現在、VS 2010 (おそらく MSBUILD v4.0 を使用) を使用して開発マシンで問題なくコンパイルされるプロジェクトがありますが、Team City の MSBUILD v3.5 では失敗します (.NET 2 を使用する Win 2003 サーバーに基づく VM で実行)。 、3.5 および 4 がインストールされています)。このプロジェクトは 2010 に新しくアップグレードされ、CI ビルドで失敗しています。私はこれをグーグルで検索し、明らかなことをすべて試しました(さらに、意味をなさないいくつかのことも)、結果には何も影響しませんでした。
プロジェクトは、次のような一連のエラーで失敗します。
System.Core、System.Data.Linq、および System.Xml.Linq を使用するソリューションには他にも多数のプロジェクトがあり、それらはすべて問題なくコンパイルされるようです。問題のプロジェクトは Web アプリケーションであり、configuration/system.web/compilation/assemblies セクションに次の設定があります。
さらに、同じファイルに以下を追加します。
問題のプロジェクトは、IIRC です。これは、私のソリューションで WebApplication であり、PostSharp (v1.5) によって後処理されている唯一のプロジェクトです。PostSharp は .csproj で次のように構成されます。
これがどのように関連しているのかはわかりませんが、念のためです。
このエラーの原因、または問題を回避する方法について何かアイデアはありますか?
ティア
.net - 参照を追加するだけで Postsharp Unhandled 例外
Postsharp を使い始めましたが、最初のステップから抜け出せません。他の誰かがhttp://www.sharpcrafters.com/forum/Topic4817-18-1.aspxのフォーラムで報告しましたが、誰かがこれに遭遇し、おそらく解決策を持っているかどうか疑問に思っていました.
VS2008 を使用しており、.net3.5SP1 がインストールされています。
(フォーラムよりも多くの活動があるため、ここに投稿します)。
c# - デバッグ構成の使用時に PostSharp ビルド ターゲットが実行されない
PostSharp ビルド ターゲットを参照するように編集した Visual Studio プロジェクトをセットアップしました。開発マシンに PostSharp をインストールするためにインストールされた MSI を使用しませんでした。
私が抱えている問題は、ビルド構成を「リリース」に変更したときにのみ PostSharp ターゲットが実行され、「デバッグ」では実行されないことです。
これは、リリース時に次の行を含むビルド出力を確認することで確認できます。
プロジェクト ファイルを見ると、PostSharp が 1 つの構成で実行され、別の構成では実行されないことを示唆する明らかなものは何も見つかりません。デバッグ構成とリリース構成の両方で PostSharp を実行するように構成するにはどうすればよいですか? 心に留めておいて、インストーラーの使用は避けたいと思います。
カール
EDIT csproj スニペントは、以下のファイルの下部に表示されます<ItemGroup>
。
c# - PostSharpは、ジェネリックメソッドに適用するとBadImageExceptionを引き起こします-peverify.exeを実行するとエラーが発生します
プロジェクトをVS2008/.NET 3.5 /PostSharp1.5からVS2010/.NET4.0 /PostSharp2.0にアップグレードしました。
これで、システムの単体テストを実行すると、次の形式で数え切れないほどの例外が発生します。
System.BadImageFormatException:不正な形式のプログラムを読み込もうとしました。(HRESULTからの例外:0x8007000B)COMPANY.Data.NHibernate.BaseRepository.c__Binding`1.Invoke(Object&instance、Arguments arguments、ObjectアスペクトArgs)at PostSharp.Aspects.Internals.MethodInterceptionArgsImpl.Proceed()atCOMPANY.Aop.TransactionAspectAttribute。 OnInvoke(MethodInterceptionArgs context)in C:\ COMPANY \ Code \ COMPANY-NET4.0 \ Core \ Aop \ TransactionAspectAttribute.cs:line 68 at COMPANY.Data.NHibernate.BaseRepository.Save [T](T scoreBigModel)in C:\ COMPANY \ Code \ COMPANY-NET4.0 \ Core \ DataAccess \ NHibernate \ BaseRepository.cs:line 102 atCOMPANY.UnitTests.DataAccess.NHibernate.when_saving_a_canonical_term。<。ctor>b__5()in C:\ COMPANY \ Code \ COMPANY- NET4.0 \ UnitTests \ DataAccess \ NHibernate \ CanonicalTermRepositorySpecs.cs:
アセンブリでpeverify.exeを実行すると、次の形式で何百ものエラーが表示されます。常に一般的なメソッドの問題のようです:
[IL]:エラー:[C:\ COMPANY \ Code \ COMPANY-NET4.0 \ Core \ bin \ Debug \ COMPANY.Core.dll:COMPANY.Data.NHibernate.ActivationRepository + c__Binding :: Invoke] [offset 0x0000008D] [ found ref'PostSharp.Aspects.Internals.MethodBinding'] [expectedref'PostSharp.Aspects.Internals.MethodBinding`1[COMPANY.Models.Activation]']スタック上の予期しないタイプ。
[IL]:エラー:[C:\ COMPANY \ Code \ COMPANY-NET4.0 \ Core \ bin \ Debug \ COMPANY.Core.dll:COMPANY.Data.NHibernate.ActivationRepository + c__Binding :: Invoke] [offset 0x00000056] [ found ref'PostSharp.Aspects.Internals.MethodBinding`1 [COMPANY.Models.Activation]'] [expectedref'PostSharp.Aspects.Internals.MethodBinding']スタック上の予期しないタイプ。
PostSharp2.0RCの最新リリースを実行しています。
c# - PostSharp on assemblies I don't have source for
In the examples on their website, PostSharp has a demo of intercepting calls in main system assemblies. I have tried a few times to setup and replicate said intercept calls on assemblies I don't have the source code for with no success.
My approach was to simply place the assembly level attribute targeting the namespace and method I wanted to instrument. This has never worked for me.
something like:
[assembly: Trace("MyCategory", AttributeTargetTypes = "My.BusinessLayer.*")]
Am I missing something here? Can I not do a runtime injection of my instrumentation aspect on a assembly if I don't have the source pulled in for it? I thought I could do runtime injections...
Thanks.
c# - PostSharp を使用した Web アプリでのメソッド呼び出しの計測
例:
PostSharp 属性をメソッドに追加して、メソッドが呼び出される前にストップウォッチが開始され、呼び出しが返された直後に停止するようにします。このメソッドは Web アプリで使用されるため、複数のスレッドから呼び出されます。
すべてのスレッドで使用できるように、ストップウォッチのタイミングの結果を静的スレッドセーフ コレクションに格納します。このコレクションは、分析のために別の監視スレッドで読み取ることができます。
これにより、コレクションのロックが解放されるのを待つ間、すべてのメソッド呼び出しが効果的に強制的にブロックされるでしょうか? (ポストシャープ コード ブロックを完成できるようにするため)。
MSMQ を使用した非同期メッセージングは、この問題に対するノンブロッキング ソリューションを可能にしますか?
PostSharp 属性コード:
//...
//...
c# - この非同期ロギング コードを使用することの欠点は何ですか?
私が書いたいくつかのコードは次のとおりです。
これは、メソッド呼び出しの期間を非同期的に記録する目的で PostSharp アスペクトをメソッドに適用する方法を示しています。これにより、ロギング プロセスが遅い場合、アスペクトで修飾されたメソッドの呼び出し元にはこのパフォーマンス ペナルティが見られません。 .
MyFirstMethod が完了し、ロギング メソッドが別のスレッドでオフに設定され、MySecondMethod が並行して実行されているため、機能しているようです。これは、非常にトラフィックの多い Web アプリケーション (高度にマルチスレッド化された環境) 内のメソッドを同様のインストルメンテーションで装飾するというものです。
そうすることの落とし穴は何ですか?(たとえば、いつでも許可されるスレッド数の制限に達することを懸念しています)。
c# - PostSharp アドバイス内からクラス メンバーを呼び出すことはできますか?
だから私は PostSharp と協力してボイラープレートのロギング/例外処理コードを引き出し、次のようにします。
これになります:
ただし、特定の場所に、既知の回復ポイントが存在するインスタンスを持つコードがあるため、次のようになります。
これをアドバイスとして表現したいのですが、アドバイスからクラスのメンバーにアクセスできないようです。
.net - PostSharp1.5および.Net4
Postsharpは素晴らしいですが、1.5バージョンだけがまだオープンソースです。.net 4.0で動作しますか?そうでない場合は、他に優れたAOPウィーバーはありますか?プロキシタイプには興味がありません。
c# - Postsharp 2.0 を使用した Log4Postsharp (死んだ?) または ELMAH のドロップ?
最新のビルド (2010 年 3 月 - 私は log4postsharp 2.0 と呼ばれていると思います) が postsharp 2.0 コミュニティ エディションと互換性があるかどうか知っている人はいますか?
過去に postsharp 1.5 を log4postsharp と一緒に使用したことがありますが、その結果には非常に満足しています。
しかし、log4postsharp は死んでいるようですが、これは本当ですか?
もっとエルマーに専念するべきですか?私は本当にlog4netを使い続けたかった...
どんなアイデアや洞察も本当に感謝しています
ありがとう