Spark in Console Application Targetting .NET 4.0 - PullRequest
       31

Spark in Console Application Targetting .NET 4.0

2 голосов
/ 09 сентября 2010

Мне просто интересно, удалось ли кому-нибудь Spark работать в консольном приложении .NET 4.0 для компиляции шаблонов в HTML. К сожалению, я получаю следующую ошибку:

Unhandled Exception: Spark.Compiler.CompilerException: Dynamic view compilation failed.
(0,0): error CS1703: An assembly with the same identity 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' has already been imported. Try removing one of the duplicate references.

Однако, когда я нацеливаюсь на .NET 3.5, все работает нормально, однако я специально хочу нацелиться на 4.0. Кто-нибудь решил эту проблему, некоторые старые темы в списке рассылки Spark предлагают мне, возможно, просто отредактировать строку в источнике и перекомпилировать, но я надеюсь, что это последнее средство.

EDIT:

    static void Main(string[] args)
    {
        if (args.Length > 0)
        {
            var templatePath = Path.Combine(Environment.CurrentDirectory, args[0]);
            var templateName = Path.GetFileName(templatePath);
            var templateDirPath = Path.GetDirectoryName(templatePath);
            var viewFolder = new FileSystemViewFolder(templateDirPath);

            var sparkEngine = new SparkViewEngine
            {
                DefaultPageBaseType = typeof(SparkView).FullName,
                ViewFolder = viewFolder.Append(new SubViewFolder(viewFolder, "Shared")),
            };

            var descriptor = new SparkViewDescriptor().AddTemplate(templateName);
            var view = sparkEngine.CreateInstance(descriptor) as SparkView;

            view.Model = args[1];

            using (var writer = new StreamWriter(new FileStream(args[2], FileMode.Create), Encoding.UTF8))
            {
                view.RenderView(writer);
            }
        }
        else
        {
            Console.WriteLine(">>> error - missing arguments:\n\tSparkCompiler.exe [templatepath] [modelstring] [outputname]");
        }
    }

Ответы [ 2 ]

2 голосов
/ 30 октября 2010

Исправление для этого было добавлено в основную ветку Spark. Вы можете либо загрузить исходный код и скомпилировать последние двоичные файлы, либо использовать NuPack / NuGet, чтобы добавить ссылку на свое решение в VS2010, поскольку двоичные файлы с этого момента будут обновляться.

Надеюсь, это поможет ...

1 голос
/ 10 сентября 2010

Я не считал это последним средством.Я изменил строку # 60 файла src \ Spark \ Compiler \ BatchCompiler.cs на

var providerOptions = new Dictionary { { "CompilerVersion", "v4.0" } };

, изначально она была

var providerOptions = new Dictionary { { "CompilerVersion", "v3.5" } };

После перекомпиляции и обращения к новому Spark.dll все работало какШарм.э-э, я смог перейти к следующему исключению.

...