私はASP.NET Web APIプロジェクトを持っています。私はEntity Framework Migrationsを使用しています。現在、移行中に実行されるカスタムスクリプトがあります。私はこのためにSQLFILE方法を使用しています:Entity Frameworkの移行:ASP.NET内のSQLファイルにアクセス
SqlFile(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Migrations/Scripts/MyCustomScript.sql"));
私は「常にコピー」スクリプトへの「出力ディレクトリにコピーする」に設定するとこれは、統合テストでは正常に動作します。
ただし、ウェブサイトを実行すると、<websiteroot>\bin\Migrations\MyCustomScript.sql
にコピーされ、AppDomain.CurrentDomain.BaseDirectory
はwebsiterootを指します。したがって、スクリプトが見つからないというエラーがスローされます。スクリプトはルートではなく、binフォルダにあります。
テストと実際のウェブサイトの両方で動作するようにスクリプトをロードするにはどうすればよいですか?
私はこれにそれを作った:Assembly.GetExecutingAssembly()GetManifestResourceStream(resourceNameは)とブラケットを閉じたが、それ以外:良い解決策! – fikkatra
いいえ、それはファイルを埋め込んだ場所によって異なります。これはあなたを助けてくれる良いことです! – Peter