title: Clickonce deployment assembly must be installed in the Global Assembly Cache (GAC)
body: <p>I have an series of applications that reference a single library project that I deploy using ClickOnce. This library project references several libraries for things like data processing and hardware interfacing. These are marked as LocalCopy=False and are made prerequisites in "Application Files..." by default when using a ClickOnce.</p>
  
  <p>While this is perfect for most applications, not all my applications need all the libraries. For example a program used only for viewing data doesn't need the hardware libraries.</p>
  
  <p>Following the logic of <a href="https://stackoverflow.com/questions/558361/unable-to-install-or-run-the-application-the-application-requires-stdole-versio">this thread</a> I set the files to exclude since I don't actually need them but get the error "Unable to install or run the application.  The application requires that assembly NationalInstruments.Common 8.20.306 be installed in the Global Assembly Cache (GAC) first."</p>
  
  <p>If I set them to include the application will install but then on run gives the error "Application cannot be started. Contact application vendor". If I click the details button on this dialog I get a log file:</p>
  
  <pre><code>PLATFORM VERSION INFO
  Windows             : 5.1.2600.196608 (Win32NT)
  Common Language Runtime     : 2.0.50727.3623
  System.Deployment.dll       : 2.0.50727.3053 (netfxsp.050727-3000)
  mscorwks.dll            : 2.0.50727.3623 (GDR.050727-3600)
  dfdll.dll           : 2.0.50727.3053 (netfxsp.050727-3000)
  dfshim.dll          : 4.0.31106.0 (Main.031106-0000)
  
  SOURCES
  Deployment url          : file://nt_server/prog/Publish/ResultsLoader/ATE%20Results%20Loader.application
  Deployment Provider url     : file://nt_server/prog/Publish/ResultsLoader/ATE%20Results%20Loader.application
  Application url         : file://nt_server/prog/Publish/ResultsLoader/Application%20Files/ATE%20Results%20Loader_1_0_0_5/ATE%20Results%20Loader.exe.manifest
  
  IDENTITIES
  Deployment Identity     : ATE Results Loader.application, Version=1.0.0.5, Culture=neutral, PublicKeyToken=67305960c2b2ce03, processorArchitecture=msil
  Application Identity        : ATE Results Loader.exe, Version=1.0.0.5, Culture=neutral, PublicKeyToken=67305960c2b2ce03, processorArchitecture=msil, type=win32
  
  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 \\nt_server\prog\Publish\ResultsLoader\ATE Results Loader.application resulted in exception. Following failure messages were detected:
      + Value does not fall within the expected range.
  
  COMPONENT STORE TRANSACTION FAILURE SUMMARY
  No transaction error was detected.
  
  WARNINGS
  There were no warnings during this operation.
  
  OPERATION PROGRESS STATUS
  * [4/23/2012 11:07:42 AM] : Activation of \\nt_server\prog\Publish\ResultsLoader\ATE Results Loader.application has started.
  * [4/23/2012 11:07:52 AM] : Processing of deployment manifest has successfully completed.
  * [4/23/2012 11:07:52 AM] : Installation of the application has started.
  * [4/23/2012 11:07:52 AM] : Processing of application manifest has successfully completed.
  * [4/23/2012 11:07:55 AM] : Request of trust and detection of platform is complete.
  * [4/23/2012 11:08:02 AM] : Downloading of subscription dependencies is complete.
  * [4/23/2012 11:08:02 AM] : Commit of the downloaded application has started.
  * [4/23/2012 11:08:05 AM] : Installation of application has successfully completed.
  
  ERROR DETAILS
  Following errors were detected during this operation.
  * [4/23/2012 11:08:06 AM] System.ArgumentException
      - Value does not fall within the expected range.
      - Source: System.Deployment
      - Stack trace:
          at System.Deployment.Application.NativeMethods.CorLaunchApplication(UInt32 hostType, String applicationFullName, Int32 manifestPathsCount, String[] manifestPaths, Int32 activationDataCount, String[] activationData, PROCESS_INFORMATION processInformation)
          at System.Deployment.Application.ComponentStore.ActivateApplication(DefinitionAppId appId, String activationParameter, Boolean useActivationParameter)
          at System.Deployment.Application.SubscriptionStore.ActivateApplication(DefinitionAppId appId, String activationParameter, Boolean useActivationParameter)
          at System.Deployment.Application.ApplicationActivator.Activate(DefinitionAppId appId, AssemblyManifest appManifest, String activationParameter, Boolean useActivationParameter)
          at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String&amp; errorPageUrl)
          at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
  
  COMPONENT STORE TRANSACTION DETAILS
  * Transaction at [4/23/2012 11:08:05 AM]
      + System.Deployment.Internal.Isolation.StoreOperationStageComponent
          - Status: Installed
          - HRESULT: 0x0
          - Manifest: NRJMNL92.0H4.application
      + System.Deployment.Internal.Isolation.StoreOperationSetDeploymentMetadata
          - Status: Set
          - HRESULT: 0x0
      + System.Deployment.Internal.Isolation.StoreOperationStageComponent
          - Status: Installed
          - HRESULT: 0x0
          - Manifest: ATE Results Loader.exe.manifest
      + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
          - Status: Installed
          - HRESULT: 0x0
          - File: ATE Results Loader.xml
      + System.Deployment.Internal.Isolation.StoreOperationStageComponent
          - Status: Installed
          - HRESULT: 0x0
          - Manifest: NationalInstruments.Common.Native.dll.genman
      + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
          - Status: Installed
          - HRESULT: 0x0
          - File: NationalInstruments.Common.Native.dll
      + System.Deployment.Internal.Isolation.StoreOperationStageComponent
          - Status: Installed
          - HRESULT: 0x0
          - Manifest: NationalInstruments.DAQmx.dll.genman
      + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
          - Status: Installed
          - HRESULT: 0x0
          - File: NationalInstruments.DAQmx.dll
      + System.Deployment.Internal.Isolation.StoreOperationStageComponent
          - Status: Installed
          - HRESULT: 0x0
          - Manifest: NationalInstruments.Common.dll.genman
      + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
          - Status: Installed
          - HRESULT: 0x0
          - File: NationalInstruments.Common.dll
      + System.Deployment.Internal.Isolation.StoreOperationStageComponent
          - Status: Installed
          - HRESULT: 0x0
          - Manifest: ATE.dll.genman
      + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
          - Status: Installed
          - HRESULT: 0x0
          - File: ATE.dll
      + System.Deployment.Internal.Isolation.StoreOperationStageComponent
          - Status: Installed
          - HRESULT: 0x0
          - Manifest: NationalInstruments.NI4882.dll.genman
      + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
          - Status: Installed
          - HRESULT: 0x0
          - File: NationalInstruments.NI4882.dll
      + System.Deployment.Internal.Isolation.StoreOperationStageComponent
          - Status: Installed
          - HRESULT: 0x0
          - Manifest: ATE Results Loader.exe.genman
      + System.Deployment.Internal.Isolation.StoreOperationStageComponentFile
          - Status: Installed
          - HRESULT: 0x0
          - File: ATE Results Loader.exe
      + System.Deployment.Internal.Isolation.StoreOperationInstallDeployment
          - Status: Installed
          - HRESULT: 0x0
          - AppId: file://nt_server/prog/Publish/ResultsLoader/ATE%20Results%20Loader.application#ATE Results Loader.application, Version=1.0.0.5, Culture=neutral, PublicKeyToken=67305960c2b2ce03, processorArchitecture=msil
      + System.Deployment.Internal.Isolation.StoreOperationSetDeploymentMetadata
          - Status: Set
          - HRESULT: 0x0
      + System.Deployment.Internal.Isolation.StoreTransactionOperationType (27)
          - HRESULT: 0x0
  </code></pre>