2014-01-28 193 views
2

我需要能夠使用ClickOnce在Visual Studio 2012中分發Visual C++ Runtime Distributables 2010。我如何讓2010 C++引導程序出現在VS 2012先決條件中? 2012年的引導程序已經在那裏。我可以兼得嗎?Visual Studio 2012中的Visual C++ Runtime Distributable 2010

+0

我正在使用msvcr100 .dll和msvcp100.dll僅因爲Leadtools。我試圖讓他們進入ClickOnce安裝,但你怎麼做? – DarrenD

+0

您是否曾經爲此找到過解決方案 – Julien

+0

我不得不手動添加dll。 – DarrenD

回答

1

你可以通過黑客工程文件和複製一些文件來實現這一點。下面的示例用於在Visual Studio 2013中使用Visual C++ 2012運行時庫。如果您使用的是Visual Studio的不同版本,或者需要不同版本的Visual C++運行時庫,則必須更改某些版本號。

首先將以下添加到您的項目文件:

<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> 

上面的例子是在Visual C++ 2012運行時庫的64位版本。如果你想使用32位版本,你應該用x86代替x64。如果您想使用不同版本的C++庫,則必須更改11.0版本號。如果此時打開項目並轉到先決條件,您將注意到Visual Studio 2013找不到Visual C++運行時庫的警告。要解決這個問題,你需要複製一些文件。

  1. 轉到以下文件夾:C:\ Program Files文件(x86)的\微軟的SDK \的Windows \ v8.0A \引導程序\軟件包。如果您需要不同版本的C++運行時庫,則應更改v8.0a版本號。
  2. 將文件夾複製vcredist_x86到的Visual Studio 2013採用了文件夾:C:\ Program Files文件(x86)的\微軟的SDK \的Windows \ v8.1A \引導程序\軟件包。確保使用不同的名稱來避免覆蓋2013年的圖書館。我用vcredist_x64.2012

此時您可以打開您的解決方案併發布您的解決方案。當用戶安裝你的應用程序時,他們會被要求安裝C++ Runtime庫。如果你的用戶已經安裝了應用程序,他們將需要重新安裝,否則他們不會得到安裝C++運行時庫的問題。

您的系統上可能沒有C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v8.0A \ Bootstrapper \ Packages文件夾。我想只有當您安裝Visual Studio 2013之外的Visual Studio 2012時纔會獲得此文件夾。如果您知道哪裏可以下載文件而無需安裝Visual Studio 2012,那麼請隨時編輯此問題。

相關問題