3

私は MVC4 + EF4.0 .NET 4.5 プロジェクト (たとえば、MyProject) を持っています。プロジェクトをローカルで問題なく実行できます。Azure Web サイト (クラウド サービスではない)にFTP デプロイすると、正常に動作します。ただし、GIT deployを実行すると、EF5.0 データベース操作を実行するまで、サイトはほとんどの場合「実行」されます。例外が発生しますUnable to load the specified metadata resource

デバッグ時に、次の場合に気付きました。

  • GIT は MVC4 プロジェクト全体をデプロイします (以前と同様)
  • FTP を入力し、GIT プッシュ (つまり、同じソース) 後にローカルでビルドしたばかりbin\MyProject.dllのファイル (Windows 8 x64、VS2012、Oct'12 Azure ツール) に置き換えます。bin\MyProject.dll

その後、Azure がホストする Web サイトは正常に動作します (EF5.0 データベース機能部分も)。

ローカルにビルドされた .dll は、Azure GIT パブリッシュでビルドされたものよりも約 5 KB 大きく、どちらも「リリース」モードです。GIT プッシュ (Azure 内) 後にビルドされたプロジェクトは、自分の PC とは異なる方法でビルドされていることは明らかです。ポータルを確認したところ、.NET 4.5 に設定されています。また、小さな断片だけでなく、ソリューション フォルダー全体 (1 つのプロジェクトのみ) を GIT でプッシュしています。

ローカルでビルドされた MyProject.dll ファイルとリモートでビルドされた MyProject.dll ファイルをロードすると、次の違いに気付きました( FrameworkDisplayName )

  • ローカル:System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5"),

  • リモート:System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ""),

なぜこれが起こっているのか、そしてどのような修正が考えられるのか、誰でも知っていますか?

4

2 に答える 2

2

クレジットは、ポインタとヒントについて上記の David に送られます。私は彼に賛成票を投じましたが、問題の正確な解決策もここに投稿します. ゼロから始める (GIT サーバーを移動する) まで気付かなかった大きなバグが見つかったため、元の投稿を編集しました。ここにプロセス全体があり、私のために働いています。

  • Node.JS をダウンロードします (GIT デプロイ ツールで使用されるため、.NET プロジェクトでも必要です)。
  • azure-cli ツールをインストールします (通常のコマンド プロンプトを開く => npm install azure-cli -g)
  • コマンド プロンプトでcd、リポジトリのルート ( cd \projects\MyRepoRoot)
  • そこに入力azure site deploymentscript --aspWAP PathToMyProject\MyProject.csproj -s PathToMySolution.slnします(明らかに、必要に応じてパスを調整します)
  • これにより、.deploymentおよびdeploy.cmdファイルが作成されます
  • ファイルを編集し、deploy.cmdで始まる行を見つけます%MSBUILD_PATH%(1つだけになります)
  • パラメータを挿入し/t:Buildます。例えば:
    • [前]%MSBUILD_PATH% <blah blah> /verbosity:m /t:pipelinePreDeployCopyAllFilesToOneFolder
    • [後] %MSBUILD_PATH% <blah blah> /verbosity:m /t:Build /t:pipelinePreDeployCopyAllFilesToOneFolder)
  • GIT へのプッシュ (すべてが正常に行われた場合は GIT 出力を確認してください)
  • Web サイトを参照して、動作することを確認してください。

次のリビジョンで修正されるとうれしいので、ビルド スクリプトは維持しません。

于 2013-01-14T23:27:49.227 に答える
2

はい、これは次のリリースで修正されるバグです。良いニュースは、今日それを回避することが可能であることです:

まず、この投稿に従って、カスタム展開スクリプトを使用する必要があります。

次に、この問題ごとにカスタム スクリプトの MSBuild コマンド ラインを変更する必要があります。

于 2013-01-14T18:42:22.497 に答える