Я понятия не имею, откуда берется GenericBootstrapper, поскольку невозможно найти его в реестре, даже если я установил SDK 6.0, 6.1, 8.0 и 8.1 на тот же компьютер с Windows 2012 Server.

ожно получить папку Windows SDK в задаче MSBuild?

Используя задачу generateBootstrapper, я создаю загрузчик для моей установки, чтобы иметь возможность установить предварительные требования. Для этой задачи необходим путь к папке, в которой находятся необходимые пакеты, т. Е. Папка Windows SDK.

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\"

при использовании Visual Studio 2008. До сих пор я использовал жестко запрограммированный путь, но это не будет работать на любой системе. Есть ли лучший способ получить путь?

Это мой скрипт сборки:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" 
         ToolsVersion="3.5">
    <ItemGroup>
        <BootstrapperFile Include="Microsoft.Net.Framework.2.0">
            <ProductName>.NET Framework 2.0</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include="Microsoft.Windows.Installer.3.1">
            <ProductName>Windows Installer 3.1</ProductName>
        </BootstrapperFile>
    </ItemGroup>

    <Target Name="Bootstrapper">
        <GenerateBootstrapper ApplicationFile="mySetup.msi" 
            Culture="de-DE" 
            ApplicationName="My Application" 
            OutputPath="$(OutDir)\de-DE" 
            BootstrapperItems="@(BootstrapperFile)" 
            Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\" />

        <GenerateBootstrapper ApplicationFile="mySetup.msi" 
            Culture="en-US" 
            ApplicationName="My Application" 
            OutputPath="$(OutDir)\en-US" 
            BootstrapperItems="@(BootstrapperFile)" 
            Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\" />
    </Target>
</Project>

Ответы на вопрос(5)

Ваш ответ на вопрос