CS2001 Отсутствует AssemblyAttributes.cs при выполнении пакета SSIS, развернутого на сервере

Я создал пакеты SSIS и использовал мастер развертывания служб Integration Services, чтобы развернуть его на сервере. Я вручную перехожу к каталогу служб интеграции через SQL Server 2012, щелкаю правой кнопкой мыши и выполняю свой пакет.

Однако пакет продолжает давать сбой, и при проверке сообщений отчета о выполнении я получаю следующие ошибки.

Похоже, они не справляются с задачами с данными, в которых у меня есть компоненты сценария.

Назначить: Ошибка: CS2001 - Исходный файл «C: \ Windows \ TEMP.NETFramework, Version = v4.0.AssemblyAttributes.cs» не может быть найден, CSC, 0, 0

Назначить: Ошибка: не удалось скомпилировать скрипты, содержащиеся в пакете. Откройте пакет в конструкторе служб SSIS и устраните ошибки компиляции.


person Juc    schedule 11.02.2016    source источник
comment
у вас установлена ​​правильная платформа .NET на сервере?   -  person Fuzzy    schedule 11.02.2016
comment
Что вы имеете в виду под правильной платформой .NET? Мол, правильная версия 4.0 против 4.5?   -  person Juc    schedule 11.02.2016
comment
Да как в правильной версии. Глядя на ошибку, он жалуется на отсутствие assemblyattributes.cs.   -  person Fuzzy    schedule 11.02.2016
comment
Попался. Я проверил, и у меня установлен .NET 4.0   -  person Juc    schedule 11.02.2016
comment
хммм ... может быть, компонент скрипта не был правильно собран? Извините, я больше не могу помочь, не имея доступа к пакетам.   -  person Fuzzy    schedule 11.02.2016


Ответы (5)


Этот ответ является более подробной версией ответа UberDoodles.

В проводнике Windows.

  1. Перейти к C:\Windows\Temp\
  2. Щелкните папку правой кнопкой мыши и выберите properties
  3. Перейдите на вкладку Security, выберите Advanced
  4. На вкладке по умолчанию Permissions выберите Change Permissions
  5. Для соответствующей записи разрешения выберите edit.
  6. По умолчанию у меня установлен флажок «Разрешить» для Traverse folder / execute file, Create files / write data и Create folders / append data.
  7. Также отметьте "разрешить" для List folder / read data и Take ownership.
  8. Нажимаем ОК, окно закрывается
  9. Нажмите Применить и подтвердите все, что вам нужно.

Кроме того, вошедший в систему пользователь уже имел полный доступ, но когда я изменил это для записи «Пользователи», у меня это сработало.

(на основе разрешений для файлов / папок Microsoft).

person EricG    schedule 28.10.2016
comment
Это сработало для меня, когда я добавил разрешение для [SERVERNAME] \ Users, хотя я не уверен, какая учетная запись фактически используется для сценариев при запуске пакета. Я предположил, что учетная запись службы SQL Server, но, видимо, нет. - person Doctuh D.; 03.08.2017

Я исследовал ту же проблему и нашел здесь решение:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/73e67f3a-c575-4c73-a71d-ed7a2aeabb50/csc-error-cs2001-source-file-cwindowstempnetframeworkversionv40assemblyattribute=buildmss

По сути, учетная запись, под которой запускается пакет, должна иметь полные разрешения на папку C: \ Windows \ Temp \, чтобы она могла создавать временные классы.

У меня сработало :)

person UberDoodles    schedule 05.08.2016
comment
Сработало у меня! Несмотря на то, что пользователи / настройки на моем компьютере не были слишком простыми, мне пришлось изменить права доступа с «Пользователи» вместо пользователя, с которым я вошел в систему. Как изменить разрешения: msdn.microsoft.com/en-us/library/bb727008 .aspx - person EricG; 28.10.2016

Сегодня у меня была такая же проблема, только на SQL 2016. Мне это помогло изменить версию целевого сервера в свойствах проекта Visual Studio с SQL Server 2012 на SQL Server 2016.

person Martin Blažek    schedule 16.01.2017
comment
Болезненное решение, но оно сработало - и я думаю, это правильный способ. Это также означает, что необходимо перекомпилировать все пакеты с кодом. PITA. Другие отзывы о добавлении полной perm к temp - это вектор эксплойта, ожидающий pwned. - person Mayyit; 25.04.2019

У меня такая же проблема. Сначала я использовал ответ Эрика Г. и добавил разрешения List и Read в c:\windows\temp. После того, как у меня все заработало, я вернулся и удалил это разрешение. Затем я повторно развернул свое решение из Visual Studio, на этот раз обозначив цель развертывания как SQL Server 2014 (это была среда, которую я использовал), используя решение Мартина. Затем я перезапустил процесс, и он работал с удаленными List и Read.

Я сохранил его, используя решение Мартина, так как мне не нравится получать специальные разрешения, если они мне не нужны.

Удачи

person SPO100    schedule 31.08.2017

[Visual Studio 2017 15.9.16]

Я только что перезапустил Visual Studio от имени администратора, и проблема исчезла, что подтверждает идею разрешений в приведенных выше ответах, но избавляет меня от всей работы.

Однако это не причуда, согласно этому вопросу и ответу на него Вам нужно такое разрешение для нескольких задач, таких как профилирование и отладка при определенных условиях.

Для полноты картины этот блог говорит, что вы можете столкнуться с некоторыми противопоказаниями безопасности, если запускаете VS от имени администратора при открытии сторонних решений.

person Francesco B.    schedule 16.09.2019