問題タブ [fody]

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.

0 投票する
1 に答える
1503 参照

msbuild - パッケージを復元するときに、NuGet がファイルの上書きについて尋ねないようにするにはどうすればよいですか?

最近、一部のプロジェクトに Fody を追加しましたが、ローカルでは問題なく動作しますが、TeamCity ビルド サーバーでは問題が発生します。VS2015 のパッケージ マネージャー コンソールで次のコマンドを実行すると、ローカルで複製できます。

ビルド サーバーでは、ログファイルがサーバーのデータ ドライブの空き領域をすべて使い果たすまで、このメッセージが何度も繰り返されます (最後の TC ログは 28GB になりました!)。

を試し-NonInteractiveましたが、これはビルド サーバーに影響を与えないようで、ローカルでは、パッケージ マネージャー コンソールで、そのパラメーターを認識しないと表示されます。

0 投票する
1 に答える
220 参照

tfs - TFSはFodyアセンブリを織りません

プロジェクトで Fody.PropertyChanged を使用しようとしているので[ImplementPropertyChanged]、クラスに追加しました。
私の開発マシンでは、すべてローカルで正常に動作します。

ただし、TFS で生成されたバイナリを逆コンパイルすると、それらが織り込まれていないことがわかります。それらにはまだ Fody 属性があります。

FodyWeavers.xml には veaver があります。

アセンブリが織り込まれていない理由を知るには、どこを見て、何を調べますか?

ありがとう!

0 投票する
1 に答える
1707 参照

c# - 適切なアーキテクチャ: .NET のドメイン モデルに属性を追加する

バックグラウンド

ドメインモデルが「中心」にあり、インフラストラクチャの具体的な実装、特に具体的なリポジトリが周辺にあることを規定するJeffrey Palermo の Onion Architectureモデル ( Hexagonal Architectureに類似) が好きです。

ここに画像の説明を入力

だから私はドメインモデルを持っているとしましょう:

次に、このドメイン モデルを他のチームに公開する必要があります。

  • UI チームは、いくつかのデータ検証属性とカスタム JSON シリアライゼーション属性を追加したいと考えています。
  • インフラストラクチャ チームは、サード パーティのデータベース実装から XML シリアライゼーション属性といくつかのカスタム属性を追加したいと考えています。
  • パブリック API チームは、仮説として WCF 属性を追加したいと考えています。

すべてのチームに自分の属性を自分のドメイン モデルに追加する自由を与えたくありません。 特に、「レイヤー固有の」依存関係をすべて自分のモデル アセンブリに追加してほしくないのです

また、このケースは、私自身でサードパーティの「ドメイン モデル」を使用しているため、より複雑になっています (この場合、Google のLibPhoneNumberを使用して電話番号を処理しています)。

理想的には、次のような独自のラッパー クラスを作成する必要があります。

質問

クラスの作成と維持UISpeakerは骨の折れる作業であり、退屈な定型コードです。

ドメインモデルを直接編集させずに、各チームが追加したい属性を追加するより良い方法はありますか? または、これらのラッパー クラスを生成するのに役立つツールがありますか (おそらくFodyT4 Templatesのような製織ツールを考えていましたが、このユース ケースで役立つかどうかを知るには、どちらにも精通していません)。

リサーチ

Stackoverflow を調べたところ、同様の質問がいくつか見つかりましたが、探している範囲をすべて満たすものはありませんでした。

0 投票する
3 に答える
5001 参照

c# - プロジェクトの名前変更→「この参照を解決できませんでした。アセンブリが見つかりませんでした」

ソリューションをビルドするたびに、次の警告が表示されます。

警告 この参照を解決できませんでした。アセンブリ "WordAPI" が見つかりませんでした。アセンブリがディスク上に存在することを確認してください。コードでこの参照が必要な場合、コンパイル エラーが発生する可能性があります。オファーホスト

ただし、すべて正常に動作しているように見えます。これは単なる警告ですが、私を悩ませています。

それはどのように始まりましたか?

ソリューションのプロジェクトの 1 つの名前を変更しました。右クリック -> 名前の変更オプションを使用しました。また、検索と置換を使用して、プロジェクト内のすべてのファイルの名前空間の名前を変更しました。AssemblyInfo.cs ファイルを変更しました。アプリケーション タブのプロジェクト プロパティで、 と を変更しましAssembly NameDefault Namespace。問題がある場合は、Costura.Fodyも使用しています。

どのように修正しようとしましたか?

  • HintPath実行中のアセンブリのプロジェクト ファイルを次のように変更しました。

    /li>
  • 実行中のアセンブリから参照を削除し、再度追加しました。
  • ソリューション全体のデバッグ/リリース フォルダーを削除し、ソリューションを再構築しました

私は本当に解決策を見つけることができません。空の解決策を開始して、そこにあるすべてをコピーするのは魅力的です...


私の参照のプロパティ:

ここに画像の説明を入力

ファイル エクスプローラーでのプロジェクトの場所:

ここに画像の説明を入力

0 投票する
2 に答える
1878 参照

c# - 例外を処理するための Fody Async MethodDecorator

Fody を使用して、メソッドからスローされたすべての例外を共通の例外形式でラップしようとしています。

そこで、次のような必要なインターフェイス宣言とクラス実装を追加しました。

そして、このようなドメイン実装

これは、同期コードではうまく機能します。ただし、非同期コードの場合、他のすべての IMethodDecorator が実行されても ( OnExit、 、 などOnTaskContinuation)、例外ハンドラーはスキップされます。

たとえば、次のテスト クラスを見てください。

ShouldGetErrorAsync次の IL コードが生成されることがわかります。

そしてShouldGetErrorAsync2生成します:

を呼び出すとShouldGetErrorAsync、Fody が呼び出しをインターセプトし、メソッド本体を try キャッチでラップします。ただし、メソッドが非同期の場合、fodyError.OnTaskContinuation(task)andfodyError.OnExit()がまだ呼び出されていても、catch ステートメントにヒットすることはありません。

一方、ShouldGetErrorAsyncIL にエラー処理ブロックがなくても、エラーは問題なく処理されます。

私の質問は、エラー ブロックを適切に挿入し、非同期エラーが傍受されるようにするために、Fody がどのように IL を生成する必要があるかということです。

これは、問題を再現するテストを含むレポです

0 投票する
1 に答える
1624 参照

c#-4.0 - 不明なカスタム メタデータ アイテムの種類: Costura.Fody を使用する場合は 6

Costura.Fody を使用して DLL ファイルを exe ファイルに埋め込んでみました。最初に、パッケージ マネージャー コンソールで次のコマンドを実行して Costura.Fody をインストールしますinstall-package Costura.Fody。次に、プロジェクトをビルドします。しかし、プロジェクトの構築は失敗し、これはプロジェクトの構築のエラーです:

何か不足していますか?

0 投票する
1 に答える
536 参照

c# - タイプの指示を作成する

このメソッドを指定して、Mono.Cecil を使用する

タイプが の場合、Instructionをロードできる を作成するにはどうすればよいですか?valuevalueType

次のようにテストできるvalueタイプの場合に気付きます。Type

Createしかし、値を正しくロードするために何を渡す必要があるのか​​ わかりません。

編集:

これを使用して:

一歩近づきます。タイプを受け入れるようです。しかし、アセンブリを書き込もうとすると、次のようにエラーが発生します。

0 投票する
3 に答える
3750 参照

c# - デバッグモードでの Costura.Fody リソースの埋め込みを無効にする方法は?

Costura.Fody を使用して、すべての dll をアプリケーション アセンブリに埋め込みます。

デバッグ ビルド モードで Costura.Fody を無効にする方法はありますか? Costura.Fody をリリースまたはカスタム ビルド構成でのみ動作させるにはどうすればよいですか?