Visual Studio Addin - Изменение ссылок на проекты после загрузки проекта без «реального» их изменения - PullRequest
2 голосов
/ 08 января 2012

Таким образом, наша система сборки и система управления исходным кодом взята из Perforce, который является частью poopers.

Мы хотим изменить ссылку на dll в проекте на другое место, например, текущая ссылка может бытьC: \ blah \ debug \ blah.dll, мы хотим изменить его d: \ codeinjected \ blah \ debug \ blah.dll

Но мы не хотим делать это, это файл проекта VStudio, потому чтоэто также наш файл лаборатории сборки MSBuild, так есть ли способ создать надстройку, которая сможет делать это на лету, без фактического изменения ссылок?

1 Ответ

1 голос
/ 08 января 2012

Похоже, вы ситуативно хотите изменить расположение эталонных библиотек DLL для проекта Visual Studio. Самый простой способ сделать это - добавить условные конструкции в сам файл MsBuild.

<Reference Condition="$(OnDevMachine)">
  ...
</Reference>
<Reference Condition="$(OnLabMachine)">
  ...
</Reference>

Другим вариантом является наличие общего файла msbuild для всех ваших проектов. В этом конкретном проекте вы можете создать условно определенное значение, указывающее на справочный каталог, и каждый листовой проект ссылается на эту переменную. Это будет меньше кода и, возможно, более податливым для вашего сборщика.

<PropertyGroup>
  <ReferenceDir Condition="$(OnDevMachine) == 'true'">Some\Dev\Path</ReferenceDir> 
  <ReferenceDir Condition="$(OnLabMachine) == 'true'">Some\Lab\Path</ReferenceDir>
</PropertyGroup>
...