1

Windows 8 マシンで .net4.0 をターゲットとするマージされた DLL のビルドで問題が発生しています。VS2012 で個々の .net4.0 dll を正常にビルドできるため、この問題は発生しません。

Windows 8 の VS 2012 で .NET 4.0 をターゲットにする

私の問題について説明している次の優れたブログ投稿に出くわしました。

http://www.mattwrock.com/post/2012/02/29/What-you-should-know-about-running-ILMerge-on-Net-45-Beta-assemblies-targeting-Net-40.aspx

また:

アセンブリ 'mscorlib から型 'System.Runtime.CompilerServices.ExtensionAttribute' を読み込めませんでした

これは、マージ中に次の構文を使用することを示唆しています。

/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0"

残念ながら、Windows 8 にはこのディレクトリがありません。次の可能な解決策を考えることができますが、誰かがすでにこれを解決しているかどうか知りたいです.

  1. .net 4.0 アセンブリを Windows 7 マシンから上記のディレクトリに手動でコピーします。
  2. VS2012 で使用されている .net 4.0 アセンブリを見つけて参照します。
  3. ??
4

2 に答える 2

1

コメントとフィードバックに感謝します。実用的な(ハックな)解決策は、次のことを行うことでした:

  1. Windows 8 で新しいディレクトリを作成しますC:\Program Files\Reference Assemblies\Microsoft\Framework\v4.0
  2. .net4.5 がインストールされていない Windows 7 マシンに移動し、フォルダーの内容をコピーします。C:\Windows\Microsoft.NET\Framework\v4.0.30319
  3. 手順 2 のファイルを手順 1 で作成したフォルダーに貼り付けます。

その後、次を使用して、Windows 8 で .net4.0 アセンブリを正しく参照できました。

/targetplatform:"v4,C:\Program Files\Reference Assemblies\Microsoft\Framework\v4.0"

正常に動作することがテストされました。

于 2013-05-18T12:33:12.543 に答える
1

私も Windows 8 と VS 2012 を使用していますが、その問題は発生していません (もちろん、他の多くの人も問題ありません)。非常に簡単に言えば、v3.5 または v4.5 がインストールされている可能性があり、それは v4.0 フレームワークをインストールする必要があることを意味します (... 既に試した場合はもう一度)。

また、指定したフォルダー パスでは PC のどこにも移動できませんでしたが、このパスでは移動できました。

C:\Program Files\Reference Assemblies\Microsoft\Framework\

PC でそのパスを試して、そこに v4.0 フォルダーがあるかどうかを確認してください。

于 2013-05-18T11:53:09.577 に答える