以下是我将要提到的代码。几个问题:
我能在一个“String pkgLocation =”语句中引用两个不同的.DTSX文件吗? (我在下面做了),如果我不能这样做,并且有超过10个不同的程序包以编程方式执行,是否有一种快速而无痛的方法可以解决这个问题?
以下代码是否完全代表实体框架?
自从我玩SSIS以来已经有一段时间了,我想知道如何具体执行它?只需按“运行”就不会在测试资源管理器中显示任何内容(可能是因为它不是测试),当我尝试执行它时,我收到一条消息,指出“无法直接启动带有类库输出类型的项目”这甚至是什么意思?
我走在正确的轨道上吗? (关于以编程方式执行这些包)
public class UnitTest1
{
private void Execute_Package()
{
string pkgLocation = @"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\Customer Service Data Warehouse" +
@"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\SRS DataMart SSIS\SRSDimCategorizationLoad.dtsx";
Package pkg;
Application app;
DTSExecResult pkgResults;
Variables vars;
app = new Application();
pkg = app.LoadPackage(pkgLocation, null);
vars = pkg.Variables;
vars["A_Variable"].Value = "Some value";
pkgResults = pkg.Execute();
}
}
以下是我在上面代码中添加的旧代码:
private static void LoadTicketLifeCycleSnapShotFact()
{
ExceutePackage(@"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\Customer Service Data Warehouse\SAPBPDataToStage.dtsx");
ExceutePackage(@"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\SRS DataMart SSIS\SRSDimCategorizationLoad.dtsx");
答案 0 :(得分:2)
我将创建一个包位置数组,然后通过它们枚举为每个包调用Execute方法。
private void Execute_Package()
{
string [] pkgLocations = new string[]{
@"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\Customer Service Data Warehouse",
@"C:\tfs\z Reports\BI Projects\Customer Service Data Warehouse\SRS DataMart SSIS\SRSDimCategorizationLoad.dtsx"};
Package pkg;
Application app;
DTSExecResult pkgResults;
Variables vars;
app = new Application();
foreach(string currentFile in pkgLocations)
{
pkg = app.LoadPackage(currentFile, null);
// Assumes this variable exists in all of the packages
vars = pkg.Variables;
vars["A_Variable"].Value = "Some value";
pkgResults = pkg.Execute();
}
}
回答您提出的具体问题:
library
。图书馆不是一个可运行的东西。还需要其他东西(使用Main方法)。对于测试,这将是您的测试工具(nUnit)。或者,我创建一个使用测试项目的控制台应用程序,以确保您正确构建测试用例(然后创建一个测试项目来测试您的测试...)