«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Я пытаюсь установить SQL Server 2019 Developer Edition в ОС Windows 10 Enterprise. Однако, как только я запустил файл .exe, он показал ошибку:

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

  1. ОС: Windows 10 Корпоративная
  2. Процессор — Intel(R) Core(TM) i5-8350U с тактовой частотой 1,7 ГГц
  3. Оперативная память — 32 ГБ
  4. Жесткий диск — 500 ГБ
  1. Как только я получил эту ошибку, я удалил SSMS — перезагрузил — снова попытался установить ==== Та же проблема
  2. Удалил VS 2019 — перезагрузил — снова попытался установить ==== Та же проблема
  3. Пытался установить SQL Server 2017 Dev Edition, получая сообщение «Запрещено»
  4. Скачано
    en_sql_server_2019_developer_x64_dvd_baea4195.isoфайл с сайта Microsoft и попытался установить.

Я получаю эту ошибку:

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

НАЗВАНИЕ: Ошибка установки SQL Server.

Программа установки SQL Server обнаружила следующую ошибку:
элемент с таким же ключом уже добавлен.
Для получения справки щелкните: https://go.microsoft.com/fwlink?LinkID=20476&ProdName=Microsoft%20SQL%20Server&EvtSrc=setup. rll&EvtID=50000&EvtType=0x51E5756F%25400x294A9FD9

Пожалуйста, дайте мне знать, если у кого-нибудь есть какие-либо мысли, которые помогут мне настроить выпуск SQL Server 2019 для разработчиков.

Я пытаюсь выполнить следующий запрос для служб отчетов ssrs для портала данных в нашей базе данных Prophet 21 (программное обеспечение ERP от Epicor), и у меня возникают некоторые ошибки при попытке ввести отчет в Visual Basic. Я получаю следующую ошибку:

Конструктор отчетов Microsoft SQL Server

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


SELECT
inv_mast.item_desc,
oe_hdr.company_id, 
oe_hdr.order_no, 
oe_hdr.validation_status, 
oe_hdr.order_date, 
oe_hdr.requested_date, 
oe_hdr.address_id, 
oe_hdr.ship2_name, 
oe_hdr.ship2_city, 
oe_hdr.ship2_state, 
oe_hdr_salesrep.salesrep_id, 
p21_view_oe_line.line_no, 
p21_view_oe_line.required_date
, inv_mast.item_id,
 --p21_view_oe_line.qty_ordered, 
p21_view_oe_line.unit_quantity, 
p21_view_oe_line.unit_size, 
p21_view_oe_line.qty_allocated, 
p21_view_oe_line.qty_on_pick_tickets, 
p21_view_oe_line.qty_invoiced, 
p21_view_oe_line.qty_canceled, 
p21_view_oe_line.unit_of_measure, 
p21_view_oe_line.disposition, 
p21_view_oe_line.unit_price, 
CASE p21_view_oe_line.po_cost
WHEN 0 THEN
p21_view_oe_line.sales_cost ELSE
p21_view_oe_line.po_cost
END 
oe_line_sales_cost, 
po_hdr.supplier_id, 
po_hdr.order_date, 
po_line.date_due, 
po_line.qty_ordered, 
po_line.qty_received,
po_line.po_no,
po_hdr.po_class1,oe_hdr.customer_id,
customer.customer_name,
supplier.supplier_name,
oe_hdr.taker,
users.name
,contacts.first_name,
contacts.mi,
contacts.last_name,
p21_view_oe_line.pricing_unit,
p21_view_oe_line.pricing_unit_size,
p21_view_oe_line.qty_staged
, oe_hdr.location_id, location.location_name,
oe_hdr.completed,
oe_hdr.po_no,
customer.currency_id,

CASE WHEN customer.currency_id <> company.home_currency_id THEN
p21_view_oe_line.unit_price_home
END 
unit_price_home,
CASE WHEN customer.currency_id <> company.home_currency_id THEN
CASE p21_view_oe_line.po_cost_home
WHEN 0 THEN
p21_view_oe_line.sales_cost_home 
ELSE
p21_view_oe_line.po_cost_home
END END 
oe_line_sales_cost_home,
company.home_currency_id,
CASE WHEN customer.currency_id <> company.home_currency_id THEN
( p21_view_oe_line.qty_ordered - p21_view_oe_line.qty_invoiced - p21_view_oe_line.qty_canceled - p21_view_oe_line.qty_staged ) * ( p21_view_oe_line.unit_price_home / p21_view_oe_line.pricing_unit_size ) 
END calc_open_price_home,
CASE WHEN customer.currency_id <> company.home_currency_id THEN
'Home : '
END currency_type
, CASE oe_hdr.job_control_flag
WHEN 'Y'
THEN oe_hdr.job_name
ELSE '' 
END job_name,
oe_hdr.order_type,
p21_view_oe_line.user_line_no,
p21_view_prod_order_line_link.prod_order_number
--prod_order_hdr_ud.production_status
FROM oe_hdr
LEFT JOIN p21_view_oe_line ON p21_view_oe_line.order_no = oe_hdr.order_no
left join p21_view_prod_order_line_link ON p21_view_oe_line.oe_line_uid = p21_view_prod_order_line_link.transaction_uid
--left join prod_order_hdr_ud with (NOLOCK) ON p21_view_prod_order_line_link.prod_order_number = prod_order_hdr_ud.prod_order_number
left join prod_order_hdr with (NOLOCK) ON p21_view_prod_order_line_link.prod_order_number = prod_order_hdr.prod_order_number
LEFT JOIN company with (NOLOCK) ON company.company_id = oe_hdr.company_id
LEFT JOIN inv_mast with (NOLOCK) ON inv_mast.inv_mast_uid = p21_view_oe_line.inv_mast_uid
LEFT JOIN oe_hdr_salesrep with (NOLOCK) ON oe_hdr_salesrep.order_number = oe_hdr.order_no      
LEFT JOIN contacts with (NOLOCK) ON contacts.id = oe_hdr_salesrep.salesrep_id LEFT JOIN customer ON customer.customer_id = oe_hdr.customer_id AND
customer.company_id = oe_hdr.company_id
LEFT JOIN users with (NOLOCK) ON users.id = oe_hdr.taker
LEFT JOIN location with (NOLOCK) ON location.location_id = oe_hdr.location_id
LEFT JOIN oe_line_po with (NOLOCK) LEFT JOIN po_hdr with (NOLOCK) ON po_hdr.po_no = oe_line_po.po_no
LEFT JOIN po_line with (NOLOCK) ON po_line.po_no = oe_line_po.po_no AND
po_line.line_no = oe_line_po.po_line_number
LEFT JOIN supplier with (NOLOCK) ON supplier.supplier_id = po_hdr.supplier_id
ON oe_line_po.order_number = oe_hdr.order_no AND
oe_line_po.line_number = p21_view_oe_line.line_no 
AND
oe_line_po.delete_flag = 'N' AND
oe_line_po.cancel_flag = 'N' AND
oe_line_po.completed = 'N' AND
oe_line_po.connection_type = 'P'

WHERE 
( oe_hdr_salesrep.primary_salesrep = 'Y' ) 
AND ( p21_view_oe_line.delete_flag = 'N' ) 
AND ( p21_view_oe_line.cancel_flag = 'N' ) 
AND ( p21_view_oe_line.complete = 'N') AND (( oe_hdr.completed <> 'Y') OR ((oe_hdr.completed = 'Y') )) 
AND p21_view_oe_line.parent_oe_line_uid = '0'
AND (oe_hdr.rma_flag = 'N' ) 
AND ( oe_hdr.projected_order = 'N' )  
--and  (oe_hdr.order_type <> '1706')
--and (location_name = 'TriNova - Florida')
--AND prod_order_hdr.complete <> 'y'
-- and  datediff(day , oe_hdr.order_date, getdate())  >= 5
-- AND  ((oe_hdr.order_date + 5) <  GETDATE())
-- AND (p21_view_audit_trail_oe_hdr_1319.date_created < dateadd(dd,5,p21_view_audit_trail_oe_hdr_1319.date_created))
--AND p21_view_audit_trail_oe_hdr_1319.date_created > GETDATE()

Я получаю эту ошибку всякий раз, когда я отправляю форму, также метод действия не вызывается из-за этого:

Элемент с тем же ключом уже добавлен.

И сведения об исключении:

ViewPage

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/XYZ.Master"
    Inherits="System.Web.Mvc.ViewPage" %>
    
        Create
    
    
        <% using (Html.BeginForm()) {%>    
            

Admin Segment Commissions

  • <%:Html.ActionLink("Cancel", "Index", new { controller = "AdminSegmentCommissions" }, new { @class = "cancel" })%> <%----%>
<%: Html.TextBoxFor(model => model.FromSegmentNumber) %> <%: Html.ValidationMessageFor(model => model.FromSegmentNumber) %>
<%} %>

4b9b3361


Ответ 1

Скорее всего, у вас есть модель, которая содержит одно и то же свойство дважды. Возможно, вы используете new, чтобы скрыть базовое свойство.

Решение — переопределить свойство или использовать другое имя.

Если вы поделитесь своей моделью, мы сможем подробнее разобраться.

Ответ 2

У меня была такая же проблема, и я решил это. У меня было двойное свойство с тем же именем в моей модели ViewModel. Одно свойство было в BaseViewModel, а другое — в производной модели.

public class BaseviewModel{
  public int UserId { get; set; }
}


 public class Model : BaseViewModel
 {
     public int UserId { get; set; }
 }

Я изменил это на

public class BaseviewModel{
   public int UserId { get; set; }
}


public class Model : BaseViewModel
{
    public int User_Id { get; set; }
}

Теперь он работает нормально.

Ответ 3

У меня была аналогичная проблема, и я обнаружил, что это связано с тем, что у меня было аналогичное публичное свойство (которое должно было быть частным), которое только отличалось в случае.

public string PropertyName {get;set;} // actually set propertyName, get propertyName
public string propertyName {get;set;}
public string PropertyName {get;set;} 
private string propertyName {get;set;}

Ответ 4

У меня было 2 свойства модели, подобные этому

public int LinkId {get;set;}
public int LinkID {get;set;}

Странно, что он выбросил эту ошибку для этих двух ха-ха..

Ответ 5

У меня была проблема не в моей модели С#, а в объекте javascript, который я отправлял с помощью AJAX. Я использую Angular для привязки и имел заглавное поле Notes на странице, а мой объект С# ожидал нижний регистр Notes. Более описательная ошибка будет приятной.

class Post {
    public string notes { get; set; }
}

Ответ 6

Я нашел ответ. Это было из-за переменных. Как int a и string a. были две переменные с тем же именем.

Ответ 7

У меня была одна и та же проблема: я был foreach, зацикливая на моем объекте и добавляя результат в Dictionary, и у меня был `Duplicate в ключе из базы данных

 foreach (var item in myObject)
        {
            myDictionary.Add(Convert.ToString(item.x), 
                                   item.y);

        }

item.x имеет двойное значение

Ответ 8

Ответ 9

Вот что я сделал, чтобы узнать ключ, который добавляется дважды. Я загрузил исходный код из http://referencesource.microsoft.com/DotNetReferenceSource.zip и настроил VS для отладки исходного кода. Открытый Dictionary.cs в VS запускал проект, после загрузки страницы добавлял отладку в строке ThrowHelper.ThrowArgumentException(ExceptionResource.Argument_AddingDuplicate); и мог видеть значение «ключ». Я понял, что в JSON одна буква переменной была в верхнем регистре, но в моей модели она была строчной. Я исправил модель и теперь работает тот же код.

Ответ 10

Я попал в это в MVC 5 и Visual Studio Express 2013. У меня было два свойства с IndexAttribute, как показано ниже. Комментируя один из них и перекомпилировав, выстроили в лесу контроллер MVC 5 с представлениями, используя Entity Framework. Загадочно, когда я раскоментировал атрибут, перекомпилировал и снова попытался, scaffolder работал нормально.

Возможно, базовая модель данных сущностей или «что-то» была кэширована/повреждена, а удаление и повторное добавление IndexAttribute просто вызвало перестроение этого «чего-то».

[Index(IsUnique = true)]
public string Thing1 { get; set; }

[Index(IsUnique = true)]
public string Thing2 { get; set; }

Ответ 11

В MVC 5 я обнаружил, что временно комментирует ссылки на модель Entity Framework и перекомпилирует сторону проекта, выполнив эту ошибку при создании лесов. Как только я закончу строительные леса, я раскомментирую код.

public Guid CreatedById { get; private set; }
// Commented out so I can scaffold: 
// public virtual UserBase CreatedBy { get; private set; }

Ответ 12

Я хотел бы добавить ответ, который я не вижу здесь. Это очень связано с принятым ответом, однако у меня не было дублированных свойств на моей модели, это была проблема с моим Javascript.

Я делал некоторое спасение Ajax, где я перестраивал модель для отправки обратно на сервер. Когда я сначала инициализировал страницу, я установил свою исходную модель в переменную:

var currentModel = result.Data;

My result.Data имеет свойство: result.Data.Items

Итак, через некоторое время я кое-что делаю и хочу сэкономить через Ajax. Часть процесса состоит в том, чтобы захватить массив из некоторого побочного процесса и установить его в мое свойство currentModel.Items и отправить currentModel на сервер.

В моем Javascript, однако, я сделал это, вместо этого:

currentModel.items = getData();

Я не поймал его, но в Visual Studio он автоматически запустит первую букву для свойств Javascript (это тоже может быть ReSharper). Затем я получил точную ошибку, отправленную OP при попытке сохранить, поскольку currentModel теперь имеет currentModel.Items И currentModel.Items

Простая замена «пунктов» на «Элементы» устраняет проблему.

Ответ 13

У меня была такая же проблема. Он появился для меня после перехода на MVC 5 из MVC 3.

У меня был пользовательский шаблон редактора и ему пришлось использовать его так:

@Html.EditorFor(model => model.MyProperty, "MyCustomTemplateName", "MyPropertyField", this.ViewData)

Чтобы решить проблему, мне пришлось удалить проходящий объект ViewData. Поэтому в конце я имел:

@Html.EditorFor(model => model.MyProperty, "MyCustomTemplateName", "MyPropertyField")

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

Ответ 14

У меня была такая же ошибка. И после того, как я уже думал, что мой ум сломан, потому что я переименовал почти все свойства моих моделей, решение было удалить одну ссылку на All Syncfusion Controls и добавить ссылки на отдельные элементы управления этого элемента управления. (От Nuget)

Ответ 15

В моем случае корень проблемы был двойным именем свойства в клиенте json, который отличался только чувствительностью к регистру.

Ответ 16

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

Это утверждение приведет к ошибке:

select @column1, @column2

Добавление имен столбцов предотвратит ошибку:

select @column1 as col1, @column2 as col2

Ответ 17

У меня была такая же ошибка, но б/с по разным причинам. Использование Entity Framework. Еще одна вещь, которую я должен добавить здесь, прежде чем я поделюсь своим кодом и решением, у меня была точка останова на методе контроллера, но он не ломался там, просто выдает исключение 500 внутренняя ошибка сервера.

Я отправлял данные из представления в контроллер через ajax (http post). Модель, которую я ожидал в качестве параметра, была классом. Это было унаследовано с другим классом.

public class PurchaseOrder : CreateUpdateUserInfo
    {
        public PurchaseOrder()
        {
            this.Purchase_Order_Items = new List();
        }

        public int purchase_order_id { get; set; }
        public Nullable purchase_quotation_id { get; set; }
        public int supplier_id { get; set; }
        public decimal flat_discount { get; set; }
        public decimal total { get; set; }
        public decimal net_payable { get; set; }
        public bool is_payment_complete { get; set; }
        public decimal sales_tax { get; set; }
        public DateTime CreatedOn { get; set; }
        public int CreatorUserID { get; set; }
        public DateTime UpdatedOn { get; set; }
        public int UpdatorUserID { get; set; }
        public bool IsDeleted { get; set; }
        public List Purchase_Order_Items { get; set; }
    }

 public class CreateUpdateUserInfo
    {
        public DateTime CreatedOn { get; set; }
        public int CreatorUserID { get; set; }
        public string CreatorUserName { get; set; }
        public DateTime UpdatedOn { get; set; }
        public int UpdatorUserID { get; set; }
        public string UpdatorUserName { get; set; }
        public bool IsDeleted { get; set; }
    }
                var model = {
                supplier_id : isNaN($scope.supplierID) || 0 ? null : $scope.supplierID,
                flat_discount : 0,
                total : $scope.total,
                net_payable :  $scope.total,
                is_payment_complete :  true,
                sales_tax:0,
                Purchase_Order_Item: $scope.items
            };
            var obj = {
                method: 'POST',
                url: 'Purchase/SaveOrder',
                dataType: 'json',
                data: JSON.stringify(model),
                headers: { "Content-Type": "application/json" }
            };

            var request = $rootScope.AjaxRequest(obj);
            request.then(function (response) {
                var isError = response.data.MessageType === 1;
                $rootScope.bindToaster(response.data.MessageType,response.data.Message);
                //$('html, body').animate({ scrollTop: 0 }, 'slow');
                if(!isError){
                    //$scope.supplierID =undefined;
                }
            }, function (response) {
                $rootScope.bindToaster(2,response.data);
                console.log(response);
            });

Просто удалили дублированные поля из класса PurchaseOrder, и это сработало как прелесть.

Ответ 18

В моем случае, просто когда вы компилируете код, он работает просто отлично. Но вызов одного из статического поля статического класса, имеющего словарь, как в примере кода, вызывает исключение.

public static AClass
{
    public static Dictionary ADict = new Dictionary()
        {
            {"test","value1"},{"test","value2"},
        };
}

Пояснение ADict имеет дважды добавленный ключ «test». Итак, когда вы вызываете статический класс, он выдает исключение.

Ответ 19

У меня была такая же ошибка. Когда я проверил код, я обнаружил, что объявляю запрос «GET» на моей угловой стороне (font-end) и объявляю запрос «POST» на стороне ASP.net(back-end). Установите POST/GET любой в обе стороны. Затем решил ошибку.

Наш пакет служб SSIS завершается ошибкой через 2 секунды со следующей ошибкой:

Элемент с таким же ключом уже добавлен.; в System.ThrowHelper.ThrowArgumentException(ресурс ExceptionResource) в System.Collections.Generic.Dictionary`2.Insert(ключ TKey, значение TValue, логическое добавление) в Microsoft.SqlServer.IntegrationServices.Server.ISServerExec.ProjectOperator.StartPack (.SqlServer.IntegrationServices.Server.ISServerExec.ProjectOperator.PerformOperation() Хранимая процедура Transact-SQL

Мы развертываем наши пакеты служб SSIS (2016) на нашей SSISDB на MSSQL: 13.0.4001.0, у нас также есть переменные среды в той же папке

Странно то, что в этом проекте у меня есть 5 пакетов, которые работают нормально (другая работа), но только 1 не работает (у него есть своя собственная работа)

  1. Я уже удалил воссозданную папку / переменные окружения /jobs — тот же результат
  2. Я убедился, что у меня есть разные переменные окружения имя папки
  3. Мы выполняем работу с разными пользователями, и 2 из них были администраторами в БД
  4. У нас есть другие серверы, которые имеют ту же конфигурацию и проект (2 среды QA), и они работают так же, но хорошо!

Нужно ли идти прямо в MSDB и удалить строку? Куда?

Ценю любые идеи — спасибо всем


Я нашел ошибку и решение

Кажется, я развернул пакет с двумя SMTP-соединениями с тем же именем (одно как соединение проекта, а другое с тем же именем, что и соединение пакета), я удалил ненужное (в моем случае удалил один пакет) и развернул фиксированный пакет. Теперь задание успешно выполняется, вызывая только одно соединение.

  1. Мне не хватало правильной обработки ошибок из самой ошибки, поскольку она не направляла меня к конкретному соединению
  2. Пакет не прошел во время выполнения проверок — поэтому нет журналов ошибок, чтобы помочь
  3. Я запустил запрос из [SSISDB].[Catalog].[Execute_parameter_values] и сравнил успешный запуск с неудачным, после чего я заметил одноименные соединения

3
ответа

Я нашел ошибку и решение

Кажется, я развернул пакет с двумя SMTP-соединениями с тем же именем (одно как соединение проекта, а другое с тем же именем, что и соединение пакета), я удалил ненужное (в моем случае удалил один пакет) и развернул фиксированный пакет. Теперь задание успешно выполняется, вызывая только одно соединение.

  1. Мне не хватало правильной обработки ошибок из самой ошибки, поскольку она не направляла меня к конкретному соединению
  2. Пакет не прошел во время выполнения проверок — поэтому нет журналов ошибок, чтобы помочь
  3. Я запустил запрос из [SSISDB].[Catalog].[Execute_parameter_values] и сравнил успешный запуск с неудачным, после чего я заметил одноименные соединения

Я столкнулся с той же проблемой, когда скопировал существующий пакет и изменил имена таблиц\имена листов excel. Перестройка решения или повторное открытие визуальной студии решили проблему для меня



25 фев ’21 в 23:30

foreach (Benefit bene in claim.SubClaimFolderCollection[0].BenefitsFolder.BenefitCollection) 
{
    Dictionary searchBeneficiary = 
        new Dictionary();

     searchBeneficiary.Add("rli_beneficiariesid", ((Guid)claimant.GetValue("rli_subclaimfolderid", true)));     
}

Это дает мне эту ошибку

Элемент с таким же ключом уже был добавлен при добавлении элемента в словарь.

4 ответы

Вы уверены, что ошибка исходит именно отсюда? Похоже, что для каждой итерации вы создаете новый словарь, вставляете в него одну запись, а затем отбрасываете словарь. Это не должно приводить к этой ошибке, и также очень маловероятно, что вы намеревались сделать это.

Если вы хотите преобразовать коллекцию в словарь, я бы предложил использовать Enumerable.ToDictionary метод (требуется .NET 3.5).

ответ дан 25 окт ’10, 21:10

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Мне кажется, что ключ «rli_beneficiariesid» дважды добавляется в словарь каждый раз во время цикла:

(Код скопирован и вставлен из текущего образца кода в исходном сообщении):

searchBeneficiary.Add( 
        "rli_beneficiariesid",  
        searchBeneficiary.Add("rli_beneficiariesid", ((Guid)claimant.GetValue("rli_subclaimfolderid", true)));    

Обратите внимание, что searchBeneficiary.Add вызывается с помощью «rli_beneficiariesid». Внутри вызова Add снова вызывается searchBeneficiary.Add с тем же ключом.

В результате, похоже, что в словарь searchBeneficiary добавляется guid (заявитель.GetValue) с ключом rli_beneficiariesid, а затем словарь добавил к себе с таким же ключом!

ответ дан 25 окт ’10, 22:10

ответ дан 25 окт ’10, 21:10

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Этот код не может привести к ошибке. 🙂

ответ дан 30 окт ’10, 15:10

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

c#
dictionary

or задайте свой вопрос.

Это странно, я переместил некоторый код, который был первоначально проверен в некотором автономном программном обеспечении, в основное программное обеспечение.

< Сильный > Код:

                Invoke(new MethodInvoker(() =>
                {
                    foreach (HtmlElement inputTag in webBrowser.Document.GetElementsByTagName("input"))
                    {
                        Application.DoEvents();
                        var tagIdentifier = Helpers.ExtractIdentifierForAutoFill(inputTag.OuterHtml, username + "|" + password + "|" + email + "|" + url);
                        Helpers.ReturnMessage(tagIdentifier.ToString());
                        Helpers.InputFieldsDebugLogging(inputTag.OuterHtml);
                        Helpers.ReturnMessage(tagIdentifier.Item1 + " -> " + tagIdentifier.Item2 + " -> " + tagIdentifier.Item3);

                        if (!string.IsNullOrEmpty(tagIdentifier.Item3))
                        {
                            if (tagIdentifier.Item1 == "id")
                            {
                                webBrowser.Document.GetElementById(tagIdentifier.Item2).SetAttribute("value", tagIdentifier.Item3);
                            }

                            if (tagIdentifier.Item1 == "name")
                            {
                                foreach (HtmlElement id in webBrowser.Document.All.GetElementsByName(tagIdentifier.Item2))
                                {
                                    id.SetAttribute("value", tagIdentifier.Item3);
                                }
                            }
                        }
                        else
                        {
                            var ignore = File.ReadAllLines(@"LogicFiles\form-ai-ignore.txt");
                            if (!ignore.Any(tagIdentifier.Item2.Contains) && !string.IsNullOrEmpty(tagIdentifier.Item2))
                            {
                                var fi = new FormTeachAIFields(this, tagIdentifier.Item2)
                                {
                                    // ...
                                };
                            }
                        }

                    }
                }));

Ошибка при отладке:

System.ArgumentException: An item with the same key has already been added.
   at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
   at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)

Когда я проверяю, из какой строки исходит ошибка, она говорит, что находится в строке вызова: Invoke(new MethodInvoker(() =>

Кажется, что при отладке больше код не идет дальше этой части:

var tagIdentifier = Helpers.ExtractIdentifierForAutoFill(inputTag.OuterHtml, username + "|" + password + "|" + email + "|" + url);

Я включил ниже используемые методы:

        public static Tuple ExtractIdentifierForAutoFill(string input_field, string account)
        {
            var identifier = "";
            var id_or_name = "";
            try
            {
                if (input_field.Contains("id="))
                {
                    Match token_m = Regex.Match(input_field, @"id=""(.*?)""", RegexOptions.IgnoreCase);
                    if (token_m.Success)
                    {
                        identifier = token_m.Groups[1].Value;
                        id_or_name = "id";
                    }
                }

                if (input_field.Contains("name="))
                {
                    Match token_m = Regex.Match(input_field, @"name=""(.*?)""", RegexOptions.IgnoreCase);
                    if (token_m.Success)
                    {
                        identifier = token_m.Groups[1].Value;
                        id_or_name = "name";
                    }
                }
            }
            catch (Exception ex)
            {
                DebugLogging("[" + DateTime.Now + "]-[" + ex.ToString() + "]");
            }
            var tuple = new Tuple(id_or_name, identifier, GetAccountDetails(account, PredictValue(identifier), identifier));
            return tuple;
        }

        public static string GetAccountDetails(string accountDetailsString, string inputValue, string field)
        {
            string[] macro = accountDetailsString.Split('|');
            var returnValue = "";
            //ReturnMessage(inputValue);
            switch (inputValue)
            {
                case "USERNAME":
                    returnValue = macro[0];
                    break;
                case "PASSWORD":
                    returnValue = macro[1];
                    break;
                case "EMAIL":
                    returnValue = macro[2];
                    break;
                case "URL":
                    returnValue = macro[3];
                    break;
                case Helpers.CustomMacroField:
                    //TODO: duplicated code
                    if (!string.IsNullOrWhiteSpace(field))
                    {
                        var values = ReadAiFields(@"LogicFiles\form-ai-fields-custom.txt");
                        var foundKey = values.Keys.FirstOrDefault(key => field.Contains(key));
                        if (foundKey != null) returnValue = values[foundKey];
                    }
                    break;
                default:
                    returnValue = "";
                    break;
            }
            return returnValue;
        }

        public static string PredictValue(string inputValue)
        {
            string returnValue = "";
            inputValue = inputValue.ToLower();
            var values = ReadAiFields(@"LogicFiles\form-ai-fields.txt");

            var foundKey = values.Keys.FirstOrDefault(key => inputValue.Contains(key));
            if (foundKey != null)
            {
                returnValue = values[foundKey];
            }
            return returnValue;
        }

        public static Dictionary ReadAiFields(string path)
        {
            var values = new Dictionary();
            if (!File.Exists(path)) return values;
            var lines = File.ReadAllLines(path);
            for (var i = 0; i < lines.Length - 1; i++)
            {
                string line = lines[i];
                if (line.StartsWith("#"))
                {
                    string[] keys = line.Remove(0, 1).Split('|');
                    string value = lines[i + 1];
                    foreach (string key in keys)
                    {
                        values.Add(key, value);
                    }
                }
            }
            return values;
        }

Я никогда не писал вышеупомянутый код, он был недавно изменен, который работал в автономном приложении, но не после того, как я переместил точный код с помощью копирования / вставки, из чтения об ошибке, которую я думаю делать со словарем, это будет правильно? я не совсем уверен в проблеме, есть ли что-то выделяющееся в коде, который я мог пропустить? любая помощь будет оценена.

2 ответа

Сообщение об исключении говорит нам, что мы пытаемся добавить ключ в словарь, который уже содержит этот ключ, что недопустимо. Единственный код, которым вы поделились, который делает это:

foreach (string key in keys)
{
    values.Add(key, value);
}

Чтобы избежать проблемы, мы просто сначала проверяем, существует ли ключ. Если это так, у нас есть решение сделать:

  1. Оставьте существующее значение
  2. Назначьте новое значение

Чтобы оставить существующие значения, мы можем просто игнорировать ключи, которые уже существуют:

foreach (string key in keys)
{
    if(!values.ContainsKey(key))
    {
        values.Add(key, value);
    }
}

Чтобы назначить новое значение, нам не нужно проверять, существует ли ключ, мы просто добавляем его другим способом:

foreach (string key in keys)
{
    // This will add a new key/value pair, unless the key already
    // exists, in which case it will assign a new value to the key
    values[key] = value;
}

24 Июн 2020 в 18:24

Похоже, что ваша проблема здесь.

public static Dictionary ReadAiFields(string path)
        {
            var values = new Dictionary();
            if (!File.Exists(path)) return values;
            var lines = File.ReadAllLines(path);
            for (var i = 0; i < lines.Length - 1; i++)
            {
                string line = lines[i];
                if (line.StartsWith("#"))
                {
                    string[] keys = line.Remove(0, 1).Split('|');
                    string value = lines[i + 1];
                    foreach (string key in keys)
                    {
                        values.Add(key, value);
                    }
                }
            }
            return values;
        }

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

#username|password|email|url
user1|1234pass|john@example.com|somethingcool.com
#username|password|email|url
user2|123456pass|jane@example.com|somethingcooler.com
public static List> ReadAiFields(string path)
    {
        var values = new List>();
        if (!File.Exists(path)) return values;
        var lines = File.ReadAllLines(path);
        for (var i = 0; i < lines.Length - 1; i++)
        {
            string line = lines[i];
            if (line.StartsWith("#"))
            {
                var dictionary = new Dictionary();
                string[] keys = line.Remove(0, 1).Split('|');
                string value = lines[i + 1];
                foreach (string key in keys)
                {
                    dictionary.Add(key, value);
                }
                values.Add(dictionary);
            }
        }
        return values;
    }

Это, конечно, прервет ваш вызов этому методу. Если вы знаете, что это всегда первый (или, по крайней мере, знаете, что он всегда находится в определенной позиции), вы можете использовать следующее.

var foundKey = values[0].Keys.FirstOrDefault(key => inputValue.Contains(key));

24 Июн 2020 в 18:23

Пытаюсь установить SQL Server 2012 Developer Edition на свой ноутбук.

Я продолжаю получать сообщение об ошибке, что не могу записать файл XML.

Программа установки SQL Server обнаружила следующую ошибку. Произошла ошибка при создании XML-документа. Код ошибки 0X84B10001

Я запускаю setup.exe от имени администратора коробки.

Что я могу сделать, чтобы обойти это, пожалуйста?

2 ответы

Я нашел проблему. У меня не было пароля на моем компьютере. Наконец-то я нашел журнал ошибок сервера sql, и в нем было более подробно о криптографическом исключении, которое что-то делало с реестром. Затем я добавил пароль, и теперь он установлен и работает нормально.

Сумасшедшая ошибка, но я понимаю, почему вам не нужна эта ситуация.

Создан 03 июля ’12, 05:07

Пробовал это и другие исправления. По-видимому, это сообщение об ошибке относится ко многим различным проблемам. Что сработало для меня, так это создать нового пользователя с правами администратора. Войдите как этот пользователь, затем установите.

Создан 28 фев.

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

sql-server
xml
windows-7
sql-server-2012

or задайте свой вопрос.

Каждый раз, когда я запускаю приложение, я получаю сообщение об ошибке исключения:

Сообщение: элемент с таким же ключом уже был добавлен.

Полное сообщение об ошибке InnerException выглядит следующим образом:

      =========================
 Exception Information
=========================
Message: The type initializer for 'Devart.DbForge.QueryBuilder.QueryBuilderControl' threw an exception.
Source: Devart.DbForge.QueryBuilder
TargetSite: Void .ctor()
HelpLink: 
Type: System.TypeInitializationException
Place: 2
Stack:
   at Devart.DbForge.QueryBuilder.QueryBuilderControl..ctor()
   at Devart.DbForge.QueryBuilder.QueryBuilderService.CreateQueryBuilder()
   at Devart.DbForge.SqlDocument.DyMBowSEe()
   at Devart.DbForge.SqlDocument.CreateViewControl(IDocumentView view)
   at Devart.DbForge.SqlDocument..ctor(IIocContainer container, String fileName, String initialView, Encoding encoding, IHierarchy hierarchy, INode item)
   at Devart.DbForge.SqlServer.SqlServerSqlDocument..ctor(IIocContainer container, String fileName, String initialView, Encoding encoding, IHierarchy hierarchy, INode item)
   at Devart.DbForge.SqlServer.SqlDocumentFactory.InternalCreateDocument(String moniker, String& view, Boolean createNew, Encoding encoding, IHierarchy hierarchy, INode item)
   at Devart.DbForge.DocumentFactory.CreateDocument(String moniker, String& view, Boolean createNew, Encoding encoding, IHierarchy hierarchy, INode item, IPropertyProvider docData, Boolean isModal)
   at Devart.Shell.AbstractDocumentService.CreateDocument(String moniker, String& view, Guid factoryId, Boolean createNew, Encoding encoding, IHierarchy hierarchy, INode item, Boolean isModal)
   at Devart.Shell.AbstractDocumentService.CreateDocument(String moniker, String view, Guid factoryId, Boolean createNew, Encoding encoding, IHierarchy hierarchy, INode item)
   at Devart.DbForge.DbObjects.DbObjectPopupProvider.pPCTilZstB(ICommand  , CommandStatus&  , Object  )
   at Devart.Shell.Common.CommandTargetHelper.InvokeCommand(ICommand command, Object instance)
   at Devart.Shell.CommandBarService.InvokeCommand(ICommand command, ICollection objects, ICommandTarget primaryCommandTarget)
   at Devart.Shell.CommandBarBase.OnItemClicked(IInternalBarControl control)
   at Devart.Shell.MenuBar.OnItemClicked(IInternalBarControl control)
   at Devart.Shell.CommandBarButton.Button_Click(Object sender, ItemClickEventArgs e)
   at Controls.Bars.BarItem.OnClick(BarItemLink link)
   at Controls.Bars.BarBaseButtonItem.OnClick(BarItemLink link)
   at Controls.Bars.BarButtonItem.OnClick(BarItemLink link)
   at Controls.Bars.BarItemLink.OnLinkClick()
   at Controls.Bars.BarButtonItemLink.OnLinkClick()
   at Controls.Bars.BarItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
   at Controls.Bars.BarButtonItemLink.OnLinkAction(BarLinkAction action, Object actionArgs)
   at Controls.Bars.BarItemLink.OnLinkActionCore(BarLinkAction action, Object actionArgs)
   at Controls.Bars.ViewInfo.BarSelectionInfo.ClickLink(BarItemLink link)
   at Controls.Bars.ViewInfo.BarSelectionInfo.UnPressLink(BarItemLink link)
   at Controls.Bars.Controls.CustomLinksControl.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at Controls.Bars.Controls.CustomControl.WndProc(Message& msg)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)





Start of InnerException
    
    Message: An item with the same key has already been added.
    Source: mscorlib
    TargetSite: Void ThrowArgumentException(System.ExceptionResource)
    HelpLink: 
    Type: System.ArgumentException
    Stack:
       at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
       at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
       at System.Collections.ObjectModel.KeyedCollection`2.AddKey(TKey key, TItem item)
       at System.Collections.ObjectModel.KeyedCollection`2.InsertItem(Int32 index, TItem item)
       at Devart.Diagram.DiagramPalette.GetPen(Color color, Dimension width, PenAlignment alignment)
       at Devart.Diagram.DiagramPalette..ctor(ViewService viewService)
       at Devart.Diagram.ViewService..ctor(DiagramOptions options)
       at Devart.Diagram.Diagram..ctor(String diagramTypeId, IServiceProvider parentProvider)
       at Devart.Diagram.Overview.OverviewAddIn..ctor()
       at Devart.DbForge.Diagramming.Overview..ctor()
       at Devart.DbForge.QueryBuilder.QueryBuilderControl..cctor()
End of InnerException


=========================
 Window Layout
=========================
Active document window: 'Merge_SubStage.sql' (Code)
Active window: 'Database Explorer'
Active document 'Merge_SubStage.sql'

Documents:
Name: 'initial-dev.sql', Caption: 'initial-dev.sql', Visible: False, Active view: 'Code', Initial view: 'Code'
Connection name: 'DESKTOP-GV10S60\MSSQLSERVERCARLT', Is open: 'True', Server version: '15.00.2070' string: 'Data Source=DESKTOP-GV10S60\MSSQLSERVERCARLT;Encrypt=False;Integrated Security=False;User ID=lucy'

Name: 'Merge_SubStage.sql', Caption: 'Merge_SubStage.sql', Visible: True, Active view: 'Code', Initial view: 'Code'
Connection name: 'DESKTOP-GV10S60\MSSQLSERVERCARLT', Is open: 'True', Server version: '15.00.2070' string: 'Data Source=DESKTOP-GV10S60\MSSQLSERVERCARLT;Encrypt=False;Integrated Security=False;User ID=lucy'

Toolwindows (visible or have been shown in current session):
Caption: 'Database Explorer', Visible: 'True', DefaultVisibility: 'Always', IsControlCreated: 'True', State: Docked
Caption: 'Find Results', Visible: 'True', DefaultVisibility: 'Always', IsControlCreated: 'True', State: Docked
Caption: 'Error List', Visible: 'True', DefaultVisibility: 'Always', IsControlCreated: 'True', State: Docked
Caption: 'Output', Visible: 'True', DefaultVisibility: 'Always', IsControlCreated: 'True', State: Docked
Caption: 'Start Page', Visible: 'True', DefaultVisibility: 'Always', IsControlCreated: 'True', State: Tabbed

=========================
 Connections
=========================
DESKTOP-GV10S60\MSSQLSERVERCARLT (open) - 'Data Source=DESKTOP-GV10S60\MSSQLSERVERCARLT;Encrypt=False;Integrated Security=False;User ID=lucy'. Server version: 15.00.2070
CP-PretBIHydr8Config.cp-retbihydr8config.database.windows.net (current) (open) - 'Data Source=cp-retbihydr8config.database.windows.net;Encrypt=False;Initial Catalog=CP-PretBIHydr8Config;Integrated Security=False;User [email protected];Authentication="Active Directory Password"'. Server version: 12.0.2000.8
CP-pretbireferencedev.cp-retbihydr8config.database.windows.net (open) - 'Data Source=cp-retbihydr8config.database.windows.net;Encrypt=False;Initial Catalog=CP-pretbireferencedev;Integrated Security=False;User [email protected];Authentication="Active Directory Password"'. Server version: 12.0.2000.8
cp-metadata-transform-db-test.cp-retbihydr8config.database.windows.net - 'Data Source=cp-retbihydr8config.database.windows.net;Encrypt=False;Initial Catalog=cp-metadata-transform-db-test;Integrated Security=False;User [email protected];Authentication="Active Directory Password"'

Execution history
Store queries: True
Store period : 60 (days)
Available period : 60 (days)
Folder: %appdata%\Devart\dbForge Studio for SQL Server\ExecutedQueries
Max script size: 1024 (KB)
Initial interval: Week
History folder content:
C:\Users\Carlton\AppData\Roaming\Devart\dbForge Studio for SQL Server\ExecutedQueries\ExecutedQueries.db (8822784)

Ошибка генерируется моим приложением SQL, которое я использую для выполнения SQL-запросов. Есть ли у вас какие-либо мысли о том, как решить эту проблему?

Я получаю следующую ошибку в SSRS:

Произошла ошибка при сохранении метода разработки запроса.
Товар с таким ключом уже добавлен

Однако что означает «предмет»? Я даже пробовал редактировать RDL и удаление всех ссылок на хранимую процедуру, которую мне нужно использовать, называется prc_RPT_Select_BI_Completes_Data_View.

Возможно, это связано с тем, что хранимая процедура использует динамический SQL (т. N' обозначение)?

В хранимой процедуре у меня есть:

SET @SQL +=  N'
SELECT   bi.SupplierID as ''Supplier ID''
        ,bi.SupplierName as ''Supplier Name''

        ,bi.PID as ''PID''
        ,bi.RespondentID as ''Respondent ID''

        ,lk_slt.Name as ''Entry Link Type''

        ,ts.SurveyNumber as ''Initial Survey ID'''

9 ответы

Похоже, у SSRS есть проблема (по крайней мере, в версии 2008) — я изучаю этот веб-сайт, который объясняет это

Где говорится, что если у вас есть два столбца (из 2 таблиц различий) с одинаковым именем, это вызовет эту проблему.

ВЫБЕРИТЕ a.Field1, a.Field2, a.Field3, b.Field1, b.field99 FROM TableA a JOIN TableB b на a.Field1 = b.Field1

SQL отлично справился с этим, так как я добавил к каждому префикс псевдонима (таблицы). Но SSRS использует в качестве ключа только имя столбца, а не таблицу + столбец, поэтому он задыхался.

Исправить было легко: либо переименовать второй столбец в iebField1 AS Field01, либо просто опустить поле целиком, что я и сделал.

ответ дан 15 мая ’14, 21:05

Создан 23 янв.

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Я сталкиваюсь с той же проблемой. После отладки я исправил то же самое. если имя столбца в вашем SQL-запросе повторяется несколько раз, возникает эта проблема. Следовательно, используйте псевдоним в SQL-запросе, чтобы отличать имя столбца. Пример: приведенный ниже запрос будет правильно работать в SQL-запросе, но создаст проблему в отчете SSRS:

Select P.ID, P.FirstName, P.LastName, D.ID, D.City, D.Area, D.Address
From PersonalDetails P
Left Join CommunicationDetails D On P.ID = D.PersonalDetailsID

Причина: ID упомянул дважды (несколько раз)

Select P.ID As PersonalDetailsID, P.FirstName, P.LastName, D.ID, D.City, D.Area, D.Address
From PersonalDetails P
Left Join CommunicationDetails D On P.ID = D.PersonalDetailsID

Создан 23 фев.

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

У меня была такая же ошибка в запросе отчета. У меня были столбцы из разных таблиц с одинаковым именем и префиксом для каждой таблицы (например: выберите a.description, b.description, c.description), которые нормально работают в Oracle, но для отчета у вас должен быть уникальный псевдоним для каждой столбец, поэтому просто добавьте псевдоним к полям с тем же именем (выберите a.description a_description, b.description b_description и т. д.)

ответ дан 09 авг.

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Извините, это ответ на старую тему, но все еще может быть полезен.

В дополнение к приведенным выше ответам это обычно происходит, когда в один и тот же запрос включены два столбца с одинаковым именем, даже из разных таблиц. например, если мы объединяем две таблицы city и state, где таблицы имеют имя столбца, например, city.name и state.name. когда такой запрос добавляется в набор данных, SSRS удаляет имя таблицы или псевдоним таблицы и сохраняет только имя, которое в конечном итоге дважды появляется в запросе и ошибках как повторяющийся ключ. Лучший способ избежать этого — использовать псевдоним, например, называя имена столбцов city.name как c_name state.name как s_name. Это решит проблему.

Создан 23 фев.

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Я получил это сообщение об ошибке с предприятием vs2015, ssdt 14.1.xxx, ssrs. Для меня я думаю, что это было что-то другое, чем описано выше с проблемой 2 столбцов с тем же именем. Я добавил этот отчет, затем удалил отчет, затем, когда я попытался добавить запрос обратно в мастер ssrs, я получил это сообщение: «Произошла ошибка при сохранении метода разработки запроса: недопустимое имя объекта: имя таблицы». где имя_таблицы — это таблица запроса, который читал мастер. Я попытался очистить проект, я попытался перестроить проект. На мой взгляд, Microsoft не завершает очистку отчета, когда вы его удаляете, и пока вы пытаетесь добавить исходный запрос обратно, он не добавит. Способ, которым я смог исправить это, заключался в том, чтобы создать отчет ssrs в совершенно новом проекте (очевидно, ничего плохого в запросе) и сохранить его в стороне. Затем я снова открыл свой исходный проект ssrs, щелкнул правой кнопкой мыши «Отчеты», затем «Добавить», затем добавил «Существующий элемент». Отчет добавился обратно просто отлично, без конфликта имен.

Создан 28 июля ’21, 17:07

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Я только что получил эту ошибку, и я узнал, что речь идет о псевдониме локальной переменной

в конце хранимой процедуры мне понравилось

select @localvariable1,@localvariable2

он отлично работал в sql, но когда я запускал это в ssrs, он всегда выдавал ошибку, но после того, как я дал псевдоним, он исправлен

select @localvariable1 as A,@localvariable2 as B

Создан 06 июн.

SSRS не будет принимать повторяющиеся столбцы, поэтому убедитесь, что ваш запрос или процедура хранения возвращают уникальные имена столбцов.

Создан 19 июля ’20, 10:07

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Если вы используете SP и если SP имеют несколько операторов Select (в условиях if), все эти выборки должны обрабатываться с уникальными именами полей.

Создан 17 июля ’20, 11:07

«Не удалось загрузить требуемый файл. Версия установщика больше не поддерживается»

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

ssrs-2008
reporting-services

or задайте свой вопрос.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *