Кто-нибудь еще заметил, что $ (SolutionDir) разрешается в ProjectDir при загрузке проектов Wix в Vs2010? - PullRequest
0 голосов
/ 03 октября 2010

Я использую Vs2010 и Wix 3.6.0917.0, для записи. Я довольно часто использую свойство $ (SolutionDir) в моем файле .wixproj, так как я когда-либо собирал установщик только как часть сборки решения или как часть коллективной сборки, а не сам по себе. Однако, хотя сборка из командной строки работает очень хорошо (как из cmd на рабочем столе, так и при сборке на агентах сборки), при попытке перезагрузить файл .wixproj в IDE я получаю ошибки, потому что все переменные $ (SolutionDir) разрешается в каталог проекта, а не в каталог решения. Рассмотрим:

C:\workspace\projectCollection\teamProject\branch\solution.sln C:\workspace\projectCollection\teamProject\branch\source\installer\installer.wixproj

и предположим, что файл общих пользовательских целей:

C:\workspace\projectCollection\teamProject\branch\build\shared.targets

, на который ссылается внутри installer.wixproj:

<Import Project="$(SolutionDir)build\shared.targets">

Сборки командной строки работают нормально ...

C:\workspace\projectCollection\teamProject\branch\> MSBuild /t:build /property:Platform=x64;Configuration=Debug solution.sln
0 Errors
0 Warnings

Build succeeded!

Но загрузитесь в vs2010, и вы увидите ...

The imported project "C:\workspace\projectCollection\teamProject\branch\source\installer\build\shared.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. C:\workspace\projectCollection\teamProject\branch\source\installer\installer.wixproj

Здесь вы можете видеть, что разрешенным результатом $ (SolutionDir) build \ shared.targets является получение каталога проекта, а не каталога решения. Что дает?

1 Ответ

0 голосов
/ 29 октября 2010

Я полагаю, что $ (SolutionDir) ничего не разрешает, когда wixproj загружается в VS2010. В этом случае импортированный файл становится "build \ shared.targets". Поскольку путь является относительным, предполагается, что он относительно каталога проекта. Использование ".." или другого пути поможет вам решить проблему.

Я подтвердил, что это не удалось с WiX 3.5.2222.0 в VS2010. Проект консольного приложения C # (csproj) работал как положено.

Вы подали ошибку в WiX для этого?

Я немного посмотрел на код расширения WiX vs2010, и свойства решения создаются только при сборке, а не при загрузке проекта.

...