問題タブ [aspnet-merge]

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 に答える
1093 参照

asp.net - ASP.NET Web フォーム リソースとローカリゼーションに関するトリッキーな問題

次の非標準セットアップがあります (VS2008、.NET 3.5 SP1):

MainSite というメイン Web プロジェクトがあり、名前の異なる「プラグイン」Web プロジェクトがいくつかあります。

これらのプラグインをビルドするとき、 と を呼び出すカスタム ビルド ステップがaspnet_compiler.exeありaspnet_merge.exeます。これにより、2 つの .DLL ファイル ( plugin_name .dll とplugin_name _deploy.dll) が作成されます。最初のクラスには分離コード クラスが含まれ、2 番目のクラスには .ascx ファイルから生成されたコードが含まれます。

次に、これらのプラグイン .DLL が/MainSite/bin/Plugins/フォルダーにコピーされます。実行時 (アプリケーションの起動時)、MainSite アプリケーションはこのフォルダーを調べ、そこにあるすべての .DLL ファイルを動的に読み込みます。

すべてのフォームはプラグインの .ascx ファイルにあります。メイン アプリケーションは、必要に応じてこれらの .ascx ユーザー コントロールをロードする単なるスケルトンです。

そして今、ローカリゼーションの必要性が生じています。理想的には、次のものが必要です。

  • Visual Studio でリソースを作成する場合は、フォームごとに個別のリソース ファイル (.ascx ファイル) を作成して、フォームを並行してローカライズしやすくする必要があります。
  • meta:resourcekey.ascx ファイルのナイスメソッドは、コントロールのローカライズに非常に適しています。
  • .NET の自動リソース言語/カルチャ フォールバック メカニズムを使用できる必要があります。
  • /MainSite/bin/Plugins/コンパイルの結果、すべてのプラグインのファイルをフォルダーにコピーできるようになるはずです。すべての言語/カルチャ用の .DLL ファイルがあり、それらを特定のサブフォルダーに配置する必要がある場合 - 異なるプラグインの .DLL に衝突する名前がない限り問題ありません。

これを達成する方法についてのアイデアはありますか?

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

asp.net - ASP.NET Web サイトの一部をプリコンパイルしてマージし、開発を続けることはできますか?

Web サイトの大部分は、変更されることはほとんどないため、事前にコンパイルおよびマージされています。プリコンパイルされたビットは、オリジナルが更新された場合に置き換えることができます。新しいページの開発を続けたいのですが、新しいページを参照すると次のエラーが発生します。

ファイル '/Website/Test/Default.aspx' はプリコンパイルされていないため、要求できません。

これを回避する方法はありますか?

編集:

precompileApp.config ファイルを削除すると、参照時にマーカー ファイルの内容を取得できます。

これは、プリコンパイル ツールによって生成されたマーカー ファイルであり、削除しないでください。

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

asp.net - .NETアセンブリ形式にサイズ制限はありますか?

私はこれまで経験したことのない興味深い問題に遭遇しました。Visual Studio2008SP1には大規模な実稼働ASP.NET3.5SP1 Webアプリプロジェクトがあり、Webサイト展開プロジェクトを使用してコンパイルおよび展開されます。昨日のチェックイン後、アプリがで重大な失敗を開始するまで、昨年はすべてが正常に機能していましたBadImageFormatException

問題のチェックインは特に特別なことは何も変更せず、エラーはアプリの変更されていない領域から発生しています。Reflectorを使用して、問題のあるメソッドを調べ、コードにガベージ文字列が含まれていることを確認しました(.NET Reflectorは漢字としてユーモラスに解釈しました)。これは複数のマシンで一貫して再現されているため、ハードウェアに関連しているようには見えません。

さらに詳しく調べたところ、展開中にaspnet_merge.exeへの入力として使用されたアセンブリにこれらのガベージ文字列が存在しなかったことがわかりました。

aspnet_merge.exe / Web配置プロジェクトの出力アセンブリのプロパティ:

  • すべての出力を単一のアセンブリにマージします
  • 個々のフォルダの出力をそれぞれのアセンブリにマージします
  • すべてのページと制御出力を単一のアセンブリにマージします
  • ページごとに個別のアセンブリを作成し、出力を制御します

Web配置プロジェクトのプロパティで、マージオプションを最初のオプション(「すべての出力を単一のアセンブリにマージする」)に設定すると、問題が発生しますが、他のすべてのオプションは完全に機能します。

私の質問:なぜこれが起こっているのか誰かが知っていますか?aspnet_merge.exeの機能にサイズ制限はありますか(結果としてマージされるDLLは約19.3 MBです)?WAPの出力のマージに関する他の既知の問題はありますか?

アセンブリ形式/aspnet_merge.exeの達人が、このような制限について知っていれば、私はそれが大好きです。25MBのアセンブリのように私には思えますが、大きなものですが、とんでもないことではありません。

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

asp.net - ASP.Net Web 配置プロジェクトのマージ エラー

次のエラーが表示されます。

重複した型 'powerstats_Admin_control' がアセンブリ 'App_Web_ssek9ymk' で見つかりました。aspnet_merge 1 1 Release3

私のシステムに固有のものであることはわかっていますが、どうすれば修正できますか? どういう意味ですか?

回答: http://forums.asp.net/t/942008.aspx

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

asp.net - ASP.NET MVC アプリケーションの「不正なバイナリ署名」

ここで報告されているのと同じ問題が発生しています: ASP.NET MVC アプリケーションの「Bad binary signature」

ASP.Net MVC サイトはローカル コンピューターでは正常に動作しますが、aspnet_compiler、aspnet_merge、および msdeploy の組み合わせを使用して展開すると、ページの読み込みが次のエラーで失敗します。

System.BadImageFormatException バイナリ署名が正しくありません。(HRESULT からの例外: 0x80131192)

リンクされた質問で受け入れられた解決策は、間違ったバージョンの aspnet_merge を使用したことが問題の原因であることを示唆しており、デプロイから aspnet_merge ステップを削除すると問題が解決することを確認しました。

私の問題は、正しい aspnet_merge バージョンを使用しても問題が解決しないように見えることです。

Web アプリケーションは .Net 4.0 64 ビットを対象としています。使用される aspnet_merge パスは次のとおりです。「C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\aspnet_merge.exe」

[編集]

ローカル開発者は次のとおりです。

  • VS2010 SP1
  • カッシーニ
  • x64
  • VS11 Beta と .Net 4.5 がインストールされています

ビルド パスは次のとおりです。

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\
  • C:\Program Files (x86)\IIS\Microsoft Web Deploy V2\
0 投票する
1 に答える
934 参照

asp.net - aspnet_mergeが原因でdllが見つかりませんエラーが発生します

aspnet_compilerを使用してasp.netWebサイトをプリコンパイルします。次に、aspnet_mergeを実行して、プリコンパイルされたアセンブリを1つにマージします。

残念ながら、aspnet_mergeはマージプロセスにアセンブリの1つを含めません。したがって、このアセンブリは変更されません。さらに残念なことに、このアセンブリは、マージされた(そして現在は削除されている)アセンブリの1つを参照しており、この参照はaspnet_mergeによって更新されません。したがって、このdllを使用すると、 FileNotFoundException「ファイルまたはアセンブリを読み込めませんでした」が発生します。

これまでのところ、コンパイル前の手順の後、ほとんどのアセンブリの名前は次のようになっていることがわかりました。

一方、問題のあるdllの名前は次のようになります。

これがaspnet_mergeがそれを無視する理由だと思います。-logオプションを使用して、aspnet_mergeが無視することを確認しました。入力アセンブリのリストが生成されます。

私は次のようにaspnet_compilerとaspnet_mergeを呼び出します。

私は現在、逆コンパイルされたaspnet_mergeコードを見て、マージするdllを決定するときにどのロジックを使用するかを理解しようとしていますが、おそらく誰かがこの問題を以前に見たことがあるか、提案がありますか?

aspnet_compilerにaspnet_mergeが理解するdllを生成させる方法、またはaspnet_mergeに削除するapp_web*dllのいずれかを参照するすべてのアセンブリを更新するように説得する方法を探しています。ありがとう!

更新:aspnet_compilerは対応する.compiledファイルを生成しないため、aspnet_mergeはApp_Web_nameofusercontrol.ascx.xxxxxxxx.dllを無視します。また、usercontrolもApp_Web_xxxxxxxx.dllアセンブリの1つにコンパイルされているようです。ただし、同じユーザーコントロールが2つの異なるアセンブリにコンパイルされる理由はわかりません。おそらく奇妙な循環参照の問題ですか?

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

asp.net - アセンブリに重複したタイプ 'master' が見つかりました

以前は、.net 2.0 を使用していましたが、aspnet_merge ビルドは正常に機能していました。.net 4.0 にアップグレードした後、aspnet_merge を使用してコードをビルドしようとすると、次のエラーがスローされます。

アセンブリに重複したタイプ 'マスター' が見つかりました。

これはマスターページであり、重複がないか徹底的にチェックしましたが、重複はありません..

Plzは提案します..

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

visual-studio-2010 - VS 2008 プロジェクトを VS 2010 に変換した後に aspnet_merge エラーが発生する

エラーが発生します

アセンブリをマージするとき。

以前に行ったことは、.Net Framework を変更せずに VS 2010 で VS 2008 ソリューションを開き (VS 2010 で .Net Framework を 4.0 に変更するように求められたときに [いいえ] を選択)、**missing compiler required member System.Runtime. CompilerServices. ExtensionAttribute..ctor**NewtonSoft dll バージョンを 2.0 から 3.5 に変更してこのエラーを解決することです。

プロジェクトを正常に公開した後、dll をマージする必要がありますが、上記のエラーが発生しています。別のバージョンの aspnet_merge (3.5/4.0) を既にチェックインしましたが、同じエラーが発生します。

同じために何をする必要があるか教えてください。

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

c# - ASP_Merge の結果の dll デフォルトの名前空間

ASP_Merge.exeを使用して、すべてのaspxとascxを単一のdllにマージしようとしています...動作しており、dllを作成しました。私の問題は、この合併により「ASP」という名前のデフォルトの名前空間が作成され、その中にすべてコンパイル済みの ascx と aspx があることです。

この「ASP」名前空間を「MyCustomNamespace」に変更する必要があります。これを行う方法はありますか?

前もって感謝します。