如何设置相对于项目文件的资源文件路径?

时间:2011-05-26 14:54:42

标签: .net visual-studio visual-studio-2010 resources

假设我有一个目录A,并且在该目录中有一个项目文件x.csproj和sln。 我也有资源文件x.resources。

如何设置资源文件而不使用绝对路径C:\A\x.resources,而是设置相对路径.\x.resources?我尝试使用x.resources,但它不起作用。

enter image description here

3 个答案:

答案 0 :(得分:6)

刚遇到同样的问题。我的同事甚至没有尝试在UI中修复它,只是在文本编辑器中破解了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>

修改:

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

只要您不尝试再次修改UI中的值,就不会抱怨

干杯, 亚伦

答案 1 :(得分:1)

我意识到提问者正在使用.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文件所在的目录。

答案 2 :(得分:0)

注意:Visual Studio有时会在.csproj中过早放置<PropertyGroup> <Win32Resource>,因此您需要手动编辑XML并在{{<PropertyGroup>之后移动<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 1}}元素,因此引用将相对于.csproj文件。