5

Ho un'applicazione .NET 4.5.2 distribuita tramite ClickOnce. Utilizza la libreria Magick.NET, che richiede Visual C++ Redistributable per Visual Studio 2012. L'ho provato con il pacchetto 2013, ma ha ancora bisogno della versione 2012 per funzionare. Sfortunatamente, l'unica versione elencata sotto i possibili prerequisiti in Visual Studio 2013 è la versione 2013. Altre versioni sono introvabili:Dove si trova il pacchetto Bootstrapper Runtime VC++ 2012 in Visual Studio 2013?

Visual Studio 2013 ClickOnce prerequisite window

Come si includono Visual C++ 2012 Runtime Libraries con la mia app ClickOnce in Visual Studio 2013 ?

MODIFICA: Sembra che ci sia un very similar question per un'altra versione di Visual Studio che ha avuto pochissima attenzione.

+2

Precisando che esistono in una versione VS che non hai sarebbe troppo ovvio. Non ti servono comunque, copia le DLL che hai sulla tua macchina nella stessa directory del tuo EXE.È necessario msvcr110.dll e probabilmente msvcp110.dll, trovarli di nuovo nella directory di Windows (system32 per la versione a 64 bit, syswow64 per la versione a 32 bit). –

risposta

7

È possibile eseguire questa operazione hackerando il file di progetto e copiando alcuni file. L'esempio che segue è per l'utilizzo delle librerie Runtime di Visual C++ 2012 in Visual Studio 2013. Sarà necessario modificare alcuni numeri di versione se si utilizza una versione diversa di Visual Studio o si desidera una versione diversa delle librerie di Visual C++ Runtime.

Prima aggiungere quanto segue al file di progetto:

<ItemGroup> 
    <BootstrapperPackage Include="Microsoft.Visual.C++.11.0.x64"> 
    <Visible>False</Visible> 
    <ProductName>Visual C++ 2012 Runtime Libraries %28x64%29</ProductName> 
    <Install>true</Install> 
    </BootstrapperPackage> 
</ItemGroup> 

L'esempio di cui sopra è per la versione a 64 bit del 2012 Runtime Libraries Visual C++. Se si desidera utilizzare la versione a 32 bit, è necessario sostituire x64 con x86. E se si desidera utilizzare una versione diversa della libreria C++, sarà necessario modificare il numero di versione 11.0. Se apri il tuo progetto a questo punto e vai ai prerequisiti noterai un avviso che Visual Studio 2013 non riesce a trovare le librerie di runtime di Visual C++. Per risolvere questo problema dovrai copiare alcuni file.

  1. Vai alla cartella seguente: C: \ Program Files (x86) \ Microsoft SDK \ Windows \ V8.0a \ Bootstrapper \ Packages. Se si desidera una versione diversa delle librerie di runtime C++, è necessario modificare il numero di versione v8.0a.
  2. Copiare la cartella vcredist_x86 alla cartella che Visual Studio 2013 utilizza: C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v8.1A \ Bootstrapper \ Packages. Assicurati di utilizzare un nome diverso per evitare di sovrascrivere le librerie 2013. Ho usato vcredist_x64.2012.

A questo punto è possibile aprire la soluzione e pubblicare la soluzione. Quando gli utenti installano l'applicazione, verrà richiesto di installare anche le librerie di Runtime C++. Se i tuoi utenti hanno già installato l'applicazione, dovranno reinstallare altrimenti non riceveranno la domanda per installare le librerie C++ Runtime.

Potrebbe non essere possibile la cartella C: \ Programmi (x86) \ Microsoft SDK \ Windows \ v8.0A \ Bootstrapper \ Packages sul sistema. Penso che ottieni questa cartella solo quando installi Visual Studio 2012 oltre a Visual Studio 2013. Sentiti libero di modificare questa domanda se sai dove puoi semplicemente scaricare i file senza dover installare Visual Studio 2012.