そのまま実行できるSSISプロジェクトがありますが、編集しようとするとエラーが発生します。
「zipfile」という名前は現在のコンテキストに存在しません
編集しなくても、問題なく動作します。
エラーを生成しているコード:
public void Main()
{
// TODO: Add your code here
string moduleName = Dts.Variables["User::ModuleName"].Value.ToString();
string s = Dts.Variables["User::ZipFileLocation"].Value.ToString().TrimEnd('\\') + "\\" + moduleName + "\\" + moduleName + "_" + DateTime.Now.ToString("ddMMyyyy");
// TODO: Add your code here
string startPath = s;
string zipPath = s + ".Zip";
try
{
File.Delete(zipPath);
ZipFile.CreateFromDirectory(startPath, zipPath);
}
catch (Exception e)
{
}
Dts.TaskResult = (int)ScriptResults.Success;
}
どうすればこれを解決できますか?
.NETバージョン4.5を使用していることを確認してください。圧縮を参照DLL-パスは次のとおりです:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll
using System.IO.Compression.FileSystem
を追加して、クラスで参照します。クラスが別のクラスから継承されている場合は、親クラスでも参照してください。 (これは私がそれをコンパイルするためにしなければならないことです)
ZipFile
クラスを使用するには、プロジェクトのSystem.IO.Compression.FileSystem
アセンブリへの参照を追加する必要があります。そうしないと、コンパイルしようとしたときに次のエラーメッセージが表示されます。
'ZipFile'という名前は現在のコンテキストには存在しません。
Visual Studioでプロジェクトに参照を追加する方法の詳細については、 方法:参照マネージャーを使用して参照を追加または削除する を参照してください。
ZipFile
クラスはSystem.IO.Compression
を使用するだけでは協力しないことがわかり、System.IO.Compression.FileSystem
への参照を確認するように求められました。
Visual Basicを使用している場合、参照の追加は非常に簡単です。ソリューションエクスプローラーでは、プロジェクトの下にあるタブの1つが参照と呼ばれます。そこで右クリックして、参照の追加を選択します。少し下にスクロールして、System.IO.Compression.FileSystem
の横にあるチェックボックスをオンにします。 [〜#〜] ok [〜#〜]をクリックすると、コードでSystem.IO.Compression.FileSystem
を明示的に参照する必要さえありません。 !!
幸運を (: