2016-11-07 2 views
0

Я создал приложение WPF, которое использует первую базу данных кода EF6. Я делаю все это в Visual Studio и использую LocalDb по умолчанию. Клиент хочет проверить, что я сделал до сих пор. Я пробовал установку приложения ClickOnce на свой ПК разработки. Программа просто не запускается, окно не открывается .... абсолютно ничего не происходит. Я развернул простое приложение WPF, и он работает сразу, поэтому я предполагаю, что это компонент EF.Развертывание приложения Entity Framework WPF-приложения

  • Как получить какой-либо журнал вывода или отладки, чтобы я мог видеть, что такое ошибка?
  • Любые идеи о том, как исправить ошибку?
  • Где он установлен?
  • Как подключить отладчик?

МОИ ДАННЫЕ СОЕДИНЕНИЕ из App.config

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <connectionStrings> 
    <add name="EEHA_Inspector.Properties.Settings.EEHA_Inspector_Model_EEHA_DbContextConnectionString" 
     connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=EEHA_Inspector.Model.EEHA_DbContext;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> 
    </startup> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="mssqllocaldb" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
</configuration> 

Любая помощь будет принята с благодарностью.

UPDATE # 2 - Windows Log Исключение

Application: EEHA_Inspector.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.Data.SqlClient.SqlException 
    at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(System.Data.Common.DbConnection, UInt32, Boolean, Boolean, System.Data.Common.DbConnectionOptions, System.Data.ProviderBase.DbConnectionInternal ByRef) 
    at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(System.Data.Common.DbConnection, System.Threading.Tasks.TaskCompletionSource`1<System.Data.ProviderBase.DbConnectionInternal>, System.Data.Common.DbConnectionOptions, System.Data.ProviderBase.DbConnectionInternal ByRef) 
    at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(System.Data.Common.DbConnection, System.Threading.Tasks.TaskCompletionSource`1<System.Data.ProviderBase.DbConnectionInternal>, System.Data.Common.DbConnectionOptions, System.Data.ProviderBase.DbConnectionInternal, System.Data.ProviderBase.DbConnectionInternal ByRef) 
    at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(System.Data.Common.DbConnection, System.Data.ProviderBase.DbConnectionFactory, System.Threading.Tasks.TaskCompletionSource`1<System.Data.ProviderBase.DbConnectionInternal>, System.Data.Common.DbConnectionOptions) 
    at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(System.Data.Common.DbConnection, System.Data.ProviderBase.DbConnectionFactory, System.Threading.Tasks.TaskCompletionSource`1<System.Data.ProviderBase.DbConnectionInternal>, System.Data.Common.DbConnectionOptions) 
    at System.Data.SqlClient.SqlConnection.TryOpenInner(System.Threading.Tasks.TaskCompletionSource`1<System.Data.ProviderBase.DbConnectionInternal>) 
    at System.Data.SqlClient.SqlConnection.TryOpen(System.Threading.Tasks.TaskCompletionSource`1<System.Data.ProviderBase.DbConnectionInternal>) 
    at System.Data.SqlClient.SqlConnection.Open() 
    at System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.<Open>b__36(System.Data.Common.DbConnection, System.Data.Entity.Infrastructure.Interception.DbConnectionInterceptionContext) 
    at System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Dispatch[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.__Canon, System.Action`2<System.__Canon,System.__Canon>, System.__Canon, System.Action`3<System.__Canon,System.__Canon,System.__Canon>, System.Action`3<System.__Canon,System.__Canon,System.__Canon>) 
    at System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open(System.Data.Common.DbConnection, System.Data.Entity.Infrastructure.Interception.DbInterceptionContext) 
    at System.Data.Entity.Core.EntityClient.EntityConnection.<Open>b__2() 
    at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy+<>c__DisplayClass1.<Execute>b__0() 
    at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>) 
    at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(System.Action) 
    at System.Data.Entity.Core.EntityClient.EntityConnection.Open() 

Exception Info: System.Data.Entity.Core.EntityException 
    at System.Data.Entity.Core.EntityClient.EntityConnection.Open() 
    at System.Data.Entity.Core.Objects.ObjectContext.EnsureConnection(Boolean) 
    at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>, System.Data.Entity.Infrastructure.IDbExecutionStrategy, Boolean, Boolean) 
    at System.Data.Entity.Core.Objects.ObjectQuery`1+<>c__DisplayClass7[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResults>b__5() 
    at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Func`1<System.__Canon>) 
    at System.Data.Entity.Core.Objects.ObjectQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].GetResults(System.Nullable`1<System.Data.Entity.Core.Objects.MergeOption>) 
    at System.Data.Entity.Core.Objects.ObjectQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0() 
    at System.Data.Entity.Internal.LazyEnumerator`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext() 
    at System.Linq.Enumerable.FirstOrDefault[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>) 
    at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>) 
    at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IEnumerable`1<System.__Canon>, System.Linq.Expressions.Expression) 
    at System.Data.Entity.Core.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Linq.Expressions.Expression) 
    at System.Data.Entity.Internal.Linq.DbQueryProvider.Execute[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Linq.Expressions.Expression) 
    at System.Linq.Queryable.FirstOrDefault[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Linq.IQueryable`1<System.__Canon>) 
    at System.Data.Entity.Internal.EdmMetadataRepository.QueryForModelHash(System.Func`2<System.Data.Common.DbConnection,System.Data.Entity.Internal.EdmMetadataContext>) 
    at System.Data.Entity.Internal.InternalContext.QueryForModelHash() 
    at System.Data.Entity.Internal.ModelCompatibilityChecker.CompatibleWithModel(System.Data.Entity.Internal.InternalContext, System.Data.Entity.Internal.ModelHashCalculator, Boolean, System.Data.Entity.Internal.DatabaseExistenceState) 
    at System.Data.Entity.Internal.InternalContext.CompatibleWithModel(Boolean, System.Data.Entity.Internal.DatabaseExistenceState) 
    at System.Data.Entity.CreateDatabaseIfNotExists`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].InitializeDatabase(System.__Canon) 
    at System.Data.Entity.Internal.InternalContext+<>c__DisplayClassf`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<CreateInitializationAction>b__e() 
    at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(System.Action) 

Exception Info: System.Data.DataException 
    at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(System.Action) 
    at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization() 
    at System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(System.Data.Entity.Internal.InternalContext) 
    at System.Data.Entity.Internal.RetryAction`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].PerformAction(System.__Canon) 
    at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(System.Action`1<System.Data.Entity.Internal.InternalContext>) 
    at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase() 
    at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(System.Type) 
    at System.Data.Entity.Internal.Linq.InternalSet`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].Initialize() 
    at System.Data.Entity.Internal.Linq.InternalSet`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].get_InternalContext() 
    at System.Data.Entity.Infrastructure.DbQuery`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].System.Linq.IQueryable.get_Provider() 
    at System.Linq.Queryable.Where[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Linq.IQueryable`1<System.__Canon>, System.Linq.Expressions.Expression`1<System.Func`2<System.__Canon,Boolean>>) 
    at EEHA_Inspector.Model.LoadObvCollection+<Equips>d__4.MoveNext() 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(System.Threading.Tasks.Task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(System.Threading.Tasks.Task) 
    at EEHA_Inspector.ViewModel.EquipRegVm+<Load>d__55.MoveNext() 
    at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__6_0(System.Object) 
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) 
    at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) 
    at System.Windows.Threading.DispatcherOperation.InvokeImpl() 
    at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(System.Object) 
    at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) 
    at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) 
    at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) 
    at System.Windows.Threading.DispatcherOperation.Invoke() 
    at System.Windows.Threading.Dispatcher.ProcessQueue() 
    at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 
    at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 
    at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) 
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) 
    at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) 
    at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) 
    at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) 
    at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) 
    at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) 
    at System.Windows.Threading.Dispatcher.PushFrame(System.Windows.Threading.DispatcherFrame) 
    at System.Windows.Application.RunDispatcher(System.Object) 
    at System.Windows.Application.RunInternal(System.Windows.Window) 
    at System.Windows.Application.Run(System.Windows.Window) 
    at EEHA_Inspector.App.Main() 

UPDATE # 2 - Windows Log Информация

Fault bucket 129273820369, type 5 
Event Name: CLR20r3 
Response: Not available 
Cab Id: 0 

Problem signature: 
P1: EEHA_Inspector.exe 
P2: 1.0.0.0 
P3: 58222f01 
P4: System.Data 
P5: 4.6.1586.0 
P6: 575a1428 
P7: 29fe 
P8: 108 
P9: System.Data.DataException 
P10: 

Attached files: 
\\?\C:\ProgramData\Microsoft\Windows\WER\Temp\WERCB7E.tmp.WERInternalMetadata.xml 

These files may be available here: 
C:\ProgramData\Microsoft\Windows\WER\ReportArchive\AppCrash_EEHA_Inspector.e_11252b12b7f6697437e3ba42fb9b6e25caa6b8_5e1d3f42_3a80d3bb 

Analysis symbol: 
Rechecking for solution: 0 
Report Id: 91f3e855-2996-40fe-b5fd-957527bbdc9d 
Report Status: 0 
Hashed bucket: f5ea3fa3886ba4e09d8362936de86fe8 

UPDATE # 2 -Применение Ошибка в ОС Windows Вход

Faulting application name: EEHA_Inspector.exe, version: 1.0.0.0, time stamp: 0x58222f01 
Faulting module name: KERNELBASE.dll, version: 10.0.14393.0, time stamp: 0x57898e34 
Exception code: 0xe0434352 
Fault offset: 0x000d96c2 
Faulting process id: 0x5458 
Faulting application start time: 0x01d239ffc4803847 
Faulting application path: C:\Users\agibson\AppData\Local\Apps\2.0\1RVHJ9WW.8JB\BDB4M51Q.L3R\eeha..tion_fe2d9ab6a328f11f_0001.0000_19df975805717e2b\EEHA_Inspector.exe 
Faulting module path: C:\Windows\System32\KERNELBASE.dll 
Report Id: 91f3e855-2996-40fe-b5fd-957527bbdc9d 
Faulting package full name: 
Faulting package-relative application ID: 

ОБНОВЛЕНИЕ 3 =============================================== =======

OnModelOveride в DbContext

namespace EEHA_Inspector.Model 
{ 

    /// <summary> 
    /// Database Definition. 
    /// </summary> 
    public class EEHA_DbContext : DbContext 
    { 
............... 
/// <summary> 
     /// Fluent API - Entity Building Configuration. Used to define extra conditions when building the model. 
     /// These are more powerful than data annotations but also more complex. 
     /// </summary> 
     /// <param name="modelBuilder"></param> 
     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 
      /* FLUENT API MODEL OVERIDE - INTERMEDIARY TABLES 
      * Creates an intermediate mapping tables to hold many-to-many relationships between 
      * two tables. This is since one table can have multiple objects from another table. 
      * This intermediate table is used just as a look up table. 
      * Although its a look up table, databases must be configured to show the link two ways 
      * since its not possible to have a many-to-many unidirectional relationship. 
      * By mapping these intermediary table; the lookup table stays clear of the relationship; 
      * while this intermediary table handles the needed mapping to make it possible. 
      * E.g. An Equip object contains a collection of Protections; while a Protection 
      * does not contain any reference to an Equip; since this is handled in a 3rd mapping table, 
      * created by these Fluent API model builder commands. */ 

      // Equipment Many-To-Many Look Up to ProtectionCodes 
      modelBuilder.Entity<Equip>() 
      .HasMany(e => e.Protections) 
      .WithMany() 
      .Map(x => 
      { 
       x.MapLeftKey("EquipId"); 
       x.MapRightKey("ProtectionId"); 
       x.ToTable("EquipMapToProtections"); 
      }); 

      // InspectCheck Many-To-Many Look Up to InspectGrades 
      modelBuilder.Entity<InspectCheck>() 
      .HasMany(i => i.InspectGrades) 
      .WithMany() 
      .Map(x => 
      { 
       x.MapLeftKey("InspectCheckId"); 
       x.MapRightKey("InspectGradeId"); 
       x.ToTable("InspectCheckMapToInspectGrades"); 
      }); 
     } 


    } 
} 

ОБНОВЛЕНИЕ 3.1 Инициализатор Настройка

/// <summary> 
    /// Interaction logic for App.xaml 
    /// </summary> 
    public partial class App : Application 
    { 
     public App() 
     { 
      // Set the database initializer 
      Database.SetInitializer<EEHA_DbContext>(new EEHA_DbInit()); 
     } 
} 

SEED OVERIDE

#if DEBUG 
#define DESTROY_DB_ONSTART //TODO remove when development progresses. Will make the database get dropped upon every start up 
#endif 
namespace EEHA_Inspector.Model 
{ 
    /// <summary> 
    /// Custom Initialiser for the HA Database. 
    /// Set the initialiliser in the App.xaml.cs class contructor (make one if not there). 
    /// <code>Database.SetInitializer<EEHA_DbContext>(new EEHA_DbInit());</code> 
    /// </summary> 
#if DESTROY_DB_ONSTART 
    class EEHA_DbInit : DropCreateDatabaseAlways<EEHA_DbContext> 
#else 
    class EEHA_DbInit : CreateDatabaseIfNotExists<EEHA_DbContext> 
#endif 
    { 

#if DESTROY_DB_ONSTART 
     /// <summary> 
     /// Overide the Initialize to force a close of all connections when in testing 
     /// </summary> 
     /// <param name="Db">The DbContext to operate on.</param> 
     public override void InitializeDatabase(EEHA_DbContext Db) 
     { 
#if DEBUG 
      this.KillAllConnections(Db); 
#endif 
      base.InitializeDatabase(Db); 
     } 
#endif 


     protected override void Seed(EEHA_DbContext Db) 
     { 
.....changes to Db 
Db.SaveChanges(); 
base.Seed(Db); 
Db.SaveChanges(); //TODO needed? 
} 

UPDATE 4 - Использование DBCONFIG Ранее сегодня я побежал SQLExpress установить вручную, а просто пошел с параметрами по умолчанию для всех параметров. Я конвертировал в DbConfig на основе того, что мог найти в обновлении msdn. Это снова работает в визуальной студии. Создание Db в имени, которое я дал конструктору DbContext. Просто, чтобы убедиться, что я удалил программы ClickOnce install. Заново. Когда я раньше играл, я заметил это, но теперь я получаю диалоговое окно с надписью «Невозможно запустить приложение. Приложение не может быть запущено. Обратитесь к поставщику приложения». В отличие от ранее, когда приложение запускалось, а затем выпадало.Этот новый способ не дает мне журнал пользовательских исключений, но я получаю детали ниже:

Не удается запустить Ошибка приложения - кнопка Подробнее .log

PLATFORM VERSION INFO 
    Windows    : 10.0.14393.0 (Win32NT) 
    Common Language Runtime  : 4.0.30319.42000 
    System.Deployment.dll  : 4.6.1586.0 built by: NETFXREL2 
    clr.dll    : 4.6.1586.0 built by: NETFXREL2 
    dfdll.dll   : 4.6.1586.0 built by: NETFXREL2 
    dfshim.dll   : 10.0.14393.0 (rs1_release.160715-1616) 

SOURCES 
    Deployment url   : file:///C:/TempPath/EEHA/EEHA_Inspector.application 

IDENTITIES 
    Deployment Identity  : EEHA_Inspector.application, Version=1.0.0.17, Culture=neutral, PublicKeyToken=fe2d9ab6a328f11f, processorArchitecture=msil 

APPLICATION SUMMARY 
    * Installable application. 

ERROR SUMMARY 
    Below is a summary of the errors, details of these errors are listed later in the log. 
    * Activation of C:\TempPath\EEHA\EEHA_Inspector.application resulted in exception. Following failure messages were detected: 
     + External component has thrown an exception. 

COMPONENT STORE TRANSACTION FAILURE SUMMARY 
    No transaction error was detected. 

WARNINGS 
    There were no warnings during this operation. 

OPERATION PROGRESS STATUS 
    * [9/11/2016 8:03:58 PM] : Activation of C:\TempPath\EEHA\EEHA_Inspector.application has started. 
    * [9/11/2016 8:03:58 PM] : Processing of deployment manifest has successfully completed. 

ERROR DETAILS 
    Following errors were detected during this operation. 
    * [9/11/2016 8:03:58 PM] System.Runtime.InteropServices.SEHException 
     - External component has thrown an exception. 
     - Source: System.Deployment 
     - Stack trace: 
      at System.Deployment.Internal.Isolation.IStateManager.Scavenge(UInt32 Flags, UInt32& Disposition) 
      at System.Deployment.Application.ComponentStore.SubmitStoreTransaction(StoreTransactionContext storeTxn, SubscriptionState subState) 
      at System.Deployment.Application.ComponentStore.SetPendingDeployment(SubscriptionState subState, DefinitionIdentity deployId, DateTime checkTime) 
      at System.Deployment.Application.SubscriptionStore.SetLastCheckTimeToNow(SubscriptionState subState) 
      at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl) 
      at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state) 

COMPONENT STORE TRANSACTION DETAILS 
    * Transaction at [9/11/2016 8:03:58 PM] 
     + System.Deployment.Internal.Isolation.StoreOperationSetDeploymentMetadata 
      - Status: Set 
      - HRESULT: 0x0 
     + System.Deployment.Internal.Isolation.StoreTransactionOperationType (27) 
      - HRESULT: 0x0 

Db Контекст Конструктор

public EEHA_DbContext() : base("TestEEHACodeDb") 
    { 

    } 

DbConfig Класс

namespace EEHA_Inspector.Model 
{ 
    public class EEHA_DbConfig : DbConfiguration 
    { 
     public EEHA_DbConfig() 
     { 
      SetExecutionStrategy("System.Data.SqlClient",() => new SqlAzureExecutionStrategy()); 
      SetDefaultConnectionFactory(new LocalDbConnectionFactory("v11.0")); 
     } 
    } 
} 

App.config Удаленная соединительная строка. Убрать еще?

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
    </configSections> 
    <!--<connectionStrings> 
    <add name="EEHA_Inspector.Properties.Settings.EEHA_Inspector_Model_EEHA_DbContextConnectionString" 
     connectionString="Data Source=(localdb)\MSSQLLocalDB;Initial Catalog=EEHA_Inspector.Model.EEHA_DbContext;Integrated Security=True" 
     providerName="System.Data.SqlClient" /> 
    --><!--<add name="EEHA_Inspector.Properties.Settings.EEHA_Inspector_Model_EEHA_DbContextConnectionString" 
    connectionString="Data Source=./SQLEXPRESS;Initial Catalog=EEHA_Inspector.Model.EEHA_DbContext;Integrated Security=True" 
    providerName="System.Data.SqlClient" />--><!-- 
    </connectionStrings>--> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> 
    </startup> 
    <entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
    <!--<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">--> 
     <parameters> 
     <parameter value="mssqllocaldb" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 
</configuration> 

РЕШЕНИЕ// завернуть Благодаря grek40. В частности, его код исключения. Это позволило мне приступить к внесению изменений в поиск ошибок. До этого окна журналов вообще не помогали. Что мне мешало, я использовал определение DbContext, которое он предложил. По какой-то причине использование конструктора DbContext по умолчанию и строки подключения, похоже, заставили ClickOnce установить, чтобы найти файл mdf; хотя прикрепление одного не было указано. Код исключения catch также позволил моей отладке в режиме выпуска найти некоторые нечетные исключения (один раз это не применимо к режиму отладки, или это имело для меня какой-либо смысл). Теперь я отключил код нарушения, чтобы я мог продолжить; щелчок после установки теперь работает.

+0

Осмотрите журналы событий Windows. Если есть какие-либо исключения или сбои, вы можете найти их в представлении «Приложение». – dymanoid

+0

Вы управляли своими ссылками с nuget? У меня есть проект EF, который я развертываю с кликом один раз, и он работает для меня (однако, я сделал настройку до сих пор, я не могу даже сказать, что именно я сделал для него). Проверьте необходимые компоненты и файлы приложений для вашей клики после настройки. Убедитесь, что все включено и требуется, как и следовало ожидать. – grek40

+0

Спасибо dymanoid .. попробуем это. – Asvaldr

ответ

1

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

Убедитесь, что зарегистрировать обработчик исключений в App.xaml с DispatcherUnhandledException

<Application 
    x:Class="[Your Stuff]" 
    DispatcherUnhandledException="Application_DispatcherUnhandledException"> 
</Application> 

Реализовать некоторую регистрацию в обработчике (внутри App.xaml.cs). Это должно быть то, что суммирует сообщения об исключениях из всех внутренних исключений, а также их следы стека. Просто напишите эту информацию на какой-то файл журнала (C:\Temp\MyAppCrashes.log в моем примере).

private void Application_DispatcherUnhandledException(object sender, DispatcherUnhandledExceptionEventArgs e) 
{ 
    var sb = new StringBuilder(); 

    AppendExceptionMessages(sb, e.Exception); 
    AppendExceptionStacktraces(sb, e.Exception); 

    File.AppendAllText(@"C:\Temp\MyAppCrashes.log", sb.ToString()); 
} 

private void AppendExceptionMessages(StringBuilder sb, Exception e) 
{ 
    while (e != null) 
    { 
     sb.AppendLine("============== Exception ===============").AppendLine(e.Message); 
     e = e.InnerException; 
    } 
} 
private void AppendExceptionStacktraces(StringBuilder sb, Exception e) 
{ 
    while (e != null) 
    { 
     sb.AppendLine("======== Exception Stacktrace ==========").AppendLine(e.StackTrace); 
     e = e.InnerException; 
    } 
} 

Я надеюсь, что это показывает больше информации, если это не достаточно, чтобы убедиться, чтобы зарегистрировать Startup обработчик в App.xaml вместо StartupUri. В процессе запуска перед созданием любого окна создайте экземпляр вашего контекста db, вызовите db.Database.Exists() и db.Database.Initialize(true), обязательно проверьте возвращаемое значение Exists и заверните вызовы в try-catch. Конечно, записывайте данные регистрации, если какое-либо исключение поймано.

До сих пор надеемся, что вы найдете что-нибудь с этим подходом.

+0

Отлично, спасибо. Что это значит, так это то, что по какой-то причине пытается подключить файл mdf для базы данных. Я понимаю, что его нет. Не удается прикреплять файл '...... \ AppData \ Local \ Apps \ 2.0 \ ......_ 15171c3590a3cd6b \ Data \ EEHA_Inspector.Model.EEHA_DbContext.mdf' в качестве базы данных 'EEHA_Inspector.Model.EEHA_DbContext'. – Asvaldr

+0

@Asvaldr На самом деле есть файл mdf ... вопрос только в том, где хранится этот файл. В случае LocalDB это должно быть ** local **, поэтому вы должны найти его где-нибудь. Вопрос, который приходит на ум: отредактируйте конструктор контекста db в вопросе. Я хочу посмотреть, используете ли вы базовый конструктор '' Name = XYZ '' или что-то еще. – grek40

+0

Я использую конструктор по умолчанию, поскольку я его не определяю. Но я использую overide для OnModelCreating, используя свободный API. Я также перезаписываю инициализацию БД. Публикуйте все это в OP сейчас. – Asvaldr

Смежные вопросы