Как установить путь к файлу ресурса относительно файла проекта? - PullRequest
4 голосов
/ 26 мая 2011

Допустим, у меня есть каталог A и файл проекта x.csproj и sln в этом каталоге. У меня также есть файл ресурсов x.resources.

Как установить файл ресурсов без абсолютного пути C:\A\x.resources, но с относительным путем .\x.resources? Я пробовал с x.resources, но это не работает.

enter image description here

Ответы [ 3 ]

6 голосов
/ 30 августа 2011

Просто столкнулся с той же проблемой. Мой коллега даже не пытался исправить это в пользовательском интерфейсе, а просто взломал файл CSPROJ в текстовом редакторе:

CSPROJ Путь : C: \ foo \ bar \ SolutionNm \ ProjectNm \ ProjectNm.csproj

Res Path : C: \ foo \ bar \ Icons.res

Оригинал:

  <PropertyGroup>
    <Win32Resource>C:\foo\bar\Icons.res</Win32Resource>
  </PropertyGroup>

Modified:

  <PropertyGroup>
    <Win32Resource>..\..\Icons.res</Win32Resource>
  </PropertyGroup>

Пока вы не попытаетесь изменить значение в пользовательском интерфейсе, он не будет жаловаться

Ура, Аарон

1 голос
/ 23 июля 2013

Я понимаю, что спрашивающий использовал .NET, но, как FYI, для проектов C ++ вам нужно отредактировать файл VCXPROJ, а ресурсы хранятся в несколько ином формате в нижней части файла.

Оригинал:

<ItemGroup>
    <Image Include="C:\projects\dragdroptree\DragDropView\res\bmp00001.bmp" />
    <Image Include="C:\projects\dragdroptree\DragDropView\res\toolbar1.bmp" />
</ItemGroup>

Изменен:

<ItemGroup>        
    <Image Include="res\toolbar.bmp" />
    <Image Include="res\bmp00001.bmp" />
</ItemGroup>

Просто чтобы уточнить, пути, которые вы там указали, относятся к каталогу, в котором находится файл VCXPROJ.

0 голосов
/ 05 июня 2017

ПРИМЕЧАНИЕ : Visual Studio иногда помещает <PropertyGroup> <Win32Resource> слишком рано в .csproj, поэтому вам нужно будет вручную отредактировать XML и переместить <PropertyGroup> после элемента <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />, чтобы ссылка будет относиться к файлу .csproj.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...